Python如何按条件获取嵌套列表中的首个符合条件子列表
Python查找嵌套列表中首个符合条件的子列表
给定嵌套列表:
[['ac',7,0],['ac',6,1],['ac',5,1],['bc',4,1],['bc',3,0],['ac',2,0]]
需要找到第三个元素等于1的首个子列表,这里给你两种简单易懂的实现方式:
方式一:for循环遍历(直观易理解)
用循环逐个检查每个子列表,找到符合条件的就停止遍历:
# 注意:把ac、bc改成字符串避免未定义变量报错 nested_list = [['ac',7,0],['ac',6,1],['ac',5,1],['bc',4,1],['bc',3,0],['ac',2,0]] target = None for sublist in nested_list: # Python列表索引从0开始,第三个元素对应索引2 if sublist[2] == 1: target = sublist break # 找到第一个符合条件的就终止循环 print(target) # 输出结果:['ac', 6, 1]
方式二:生成器+next()函数(简洁写法)
利用生成器表达式筛选符合条件的子列表,再用next()取第一个结果:
nested_list = [['ac',7,0],['ac',6,1],['ac',5,1],['bc',4,1],['bc',3,0],['ac',2,0]] # next()的第二个参数是找不到符合条件元素时的默认值,这里设为None target = next((s for s in nested_list if s[2] == 1), None) print(target) # 输出结果:['ac', 6, 1]
注意事项
原列表里的ac、bc如果直接写会被Python当作变量,需要提前定义或者改成字符串(比如'ac'),否则会报错。
内容的提问来源于stack exchange,提问作者Atum
相关产品推荐
相关产品推荐

