Python如何从嵌套列表中查找指定字符串并打印其所在行
问题原因
你的代码存在两处核心问题:
- 嵌套列表定义不合法:你给出的
new_list外层缺少方括号包裹,不是合法的列表结构,运行会直接报错 - 匹配逻辑错误:你直接判断输入字符串是否存在于外层列表,但外层列表的元素是整行对应的子列表,不可能直接匹配到子列表内部的字符串片段;同时默认的匹配是区分大小写的,无法实现输入小写
ste匹配到大写开头的Stephen的需求
修复后可运行代码
# 正确定义嵌套列表 new_list = [ ['An American', 'Barack Obama', '4.7', '18979'], ['An Indian', 'Mahatma Gandhi', '4.7', '18979'], ['A Canadian', 'Stephen Harper', '4.6', '19234'] ] find_string = input("Enter a string you're looking for: ") # 统一转小写实现大小写不敏感匹配 find_lower = find_string.lower() found = False # 遍历每一行数据 for row in new_list: # 检查当前行的每个元素是否包含关键词 for item in row: if find_lower in item.lower(): print(f"匹配关键词:{find_string},所在行数据:{row}") found = True # 匹配到后跳出当前行遍历,避免同一行多次打印 break if not found: print("String not found!")
运行效果示例
输入ste时,输出如下:
匹配关键词:ste,所在行数据:['A Canadian', 'Stephen Harper', '4.6', '19234']
内容的提问来源于stack exchange,提问作者computerscience101
相关产品推荐
相关产品推荐

