如何通过指定元素搜索并打印嵌套列表中的对应子列表?
问题:搜索嵌套列表中包含指定元素的子列表
我有一个嵌套列表:
lists = [['a', 'b'],['c', 'd']]
希望输入a到d之间的某个元素,搜索并打印包含该元素的子列表。比如输入'a'时输出['a', 'b']。我写了初步的代码框架,但不知道怎么完成:
request = input('Input character: ') if request in lists: print() #list that contains the character the user inputted
问题分析
你原来的代码里request in lists是在判断输入的字符是否是lists中的子列表,而不是子列表里的元素,所以这个条件永远不会成立,得换个思路——遍历每个子列表来检查元素是否存在。
实现方法
方法1:基础遍历(找第一个匹配项)
直接遍历嵌套列表里的每个子列表,判断目标元素是否在子列表中,找到就打印并终止循环:
lists = [['a', 'b'],['c', 'd']] request = input('Input character: ') for sublist in lists: if request in sublist: print(sublist) break # 找到第一个匹配的就停止,节省资源
方法2:列表推导式(收集所有匹配项)
如果存在多个子列表包含目标元素,或者需要处理找不到的情况,可以用列表推导式收集所有符合条件的子列表:
lists = [['a', 'b'],['c', 'd']] request = input('Input character: ') matching_lists = [sublist for sublist in lists if request in sublist] if matching_lists: for lst in matching_lists: print(lst) else: print("没有找到包含该元素的子列表")
内容的提问来源于stack exchange,提问作者Ian Lohan
相关产品推荐
相关产品推荐

