[英]how to test if an integer is in a sub-list in a list
我想测试 3 是否是元素的第一个数字(整数或子列表的第一个),如下所示:
lst=[2, [3,6], [4,1,7]]
3 in lst
结果应该是 True,因为 3 是 [3,6] 的第一个元素。
顺便说一句:我的数据集不会让我的列表像 [3, [3,7]] (单独和在子列表中)
你可以用一个非常简单的递归函数来做到这一点,比如:
l =[2, [3,6], [4,1,7]]
def inList(l, n):
if isinstance(l, list):
return l[0] == n or any(inList(member, n) for member in l[1:])
else:
return False
inList(l, 3) # True
inList(l, 9) # False
inList(l, 2) # True
这也具有深入嵌套列表的优点:
l =[2, [3,6], [4,1,[9,[5]], 7]]
inList(l, 5) # True
假设没有子子列表:
l=[2, [3,6], [4,1,7]]
first_elements = [i[0] if isinstance(i, list) else i for i in l] # [2, 3, 4]
print(3 in first_elements)
输出:
True
您可以遍历列表,并检查子元素sub
是列表还是整数,并返回您想要的结果:
L = [2, [3,6], [4,1,7]]
num = 2
res = False
for sub in L:
if isinstance(sub, list):
if num in sub:
res = True
break
else:
if num == sub:
res = True
print(res)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.