如何提取列表元素遍历字符串查找其所有出现索引并解决嵌套函数传值问题
Python实现字符串匹配索引查找与嵌套函数传参说明
1. 核心需求实现(查找所有匹配字符的索引)
你可以用Python内置的enumerate遍历字符串同时获取索引和字符,结合成员判断实现线性搜索,示例逻辑如下:
a_list = ['i'] a_string = 'i dont know where i belong but i know i am okay here' result = [] for idx, char in enumerate(a_string): if char in a_list: result.append(idx) # 输出所有匹配的索引 print(result)
2. 嵌套函数传参规则说明
Python支持在函数内部嵌套定义其他函数,不会触发报错,且嵌套函数天然可以访问外层函数的变量:
- 如果你仅需要在嵌套函数中读取外层列表、字符串等变量,不需要做任何额外处理,直接调用即可,示例完整封装代码如下:
def search_wrapper(target_list, input_str): def linear_search(): match_indexes = [] for idx, char in enumerate(input_str): if char in target_list: match_indexes.append(idx) return match_indexes return linear_search() # 调用测试 print(search_wrapper(a_list, a_string))
- 如果你需要在嵌套函数中修改外层函数的变量,才需要用
nonlocal关键字提前声明变量。
内容的提问来源于stack exchange,提问作者Veneratu
相关产品推荐
相关产品推荐

