【发布时间】:2014-04-27 19:45:23
【问题描述】:
我需要检查一个元素是否是列表的一部分,但列表看起来像:
>>> lst = [[1,2], 3, [1,2], [1,4]]
>>> possible = [1,4]
我尝试用多个 for 循环检查它,但问题是整数,它不可迭代。
>>> for pos_elem in range(len(possible)):
for i in lst:
for j in i:
if possible[pos_elem] == j:
print j
是否有代码可以无误地检查 lst 的每个元素?
【问题讨论】:
-
您能介绍一下您想要输出的内容吗?您是否要检查“可能”列表中的任何元素是否是 lst 的元素,或列表 lst 的任何元素的元素?为了避免您的可迭代问题,您可以检查“i”是否是一个列表并仅在这种情况下对其进行迭代: if isinstance(i, list): for j in i
-
这个related question 的公认答案可能值得一看。
-
避免在列表中混合不同的类型。如果您的原始列表是:
[[1,2], [3], [1, 2], [1, 4]](注意[3]而不是3),那么答案将非常简单。对于您当前的lst,for j in i将在遇到3时引发异常。混合不同的不兼容类型只会增加要处理的案例数量。 -
感谢 cmets,但我认为将每个整数更改为仅包含整数的列表会非常密集,因为有很多......
标签: python list search for-loop integer