Python 如何测试整数是否在列表的子列表中
我想测试3是否是元素的第一个数字(整数或子列表的第一个),如下所示:Python 如何测试整数是否在列表的子列表中,python,Python,我想测试3是否是元素的第一个数字(整数或子列表的第一个),如下所示: lst=[2, [3,6], [4,1,7]] 3 in lst 结果应该是真的,因为3是[3,6]的第一个元素 顺便说一句:我的数据集不会使我的列表像[3、[3,7]](单独和在子列表中)您可以迭代列表,检查子元素sub是列表还是整数,并返回您想要的结果: L = [2, [3,6], [4,1,7]] num = 2 res = False for sub in L: if isinstance(sub, lis
lst=[2, [3,6], [4,1,7]]
3 in lst
结果应该是真的,因为3是[3,6]的第一个元素
顺便说一句:我的数据集不会使我的列表像[3、[3,7]](单独和在子列表中)您可以迭代列表,检查子元素
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)
您可以使用非常简单的递归函数来实现这一点,如:
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
你应该展示你自己的尝试。你尝试了什么,在哪里失败了?另外,不要像内置类型那样调用变量(list
,dict
,tuple
,…)。同样相关的还有:你问过如何让它工作吗,或者哦,我想那会工作吗?前面的结果出现在前面的注释中,而后面的结果表明您实际上不理解运算符中的的功能。您的数据是否有子列表?OP只希望在n与任何列表的第一个元素匹配时返回True
,而不是任何元素感谢@Dan,我什么时候才能知道阅读理解在喝咖啡之前就被打破了。这很好,但是像l=[2,3,6],[4,1,7],5]
这样的列表会有问题print(5个在第一个元素中)
=>True。@MarkMeyer通过阅读问题,我想说l=[2,3,6],[4,1,7],5]
仍然应该返回True,尽管还不清楚