可能重复:
Python: Finding corresponding indices for an intersection of two lists
我有以下代码行:
for i in [i for i,x in enumerate(catdate) if x == set(NNSRCfile['datetimenew']).intersection(catdate)]:
print i
我试图找到上面两个组件的交集索引。两者都是冗长的列表,有几个共同点。交叉部分完美运作;然而,for循环似乎没有输出任何东西。 (即:没有任何印刷品)。
Python输出没有错误,当我在IPython中运行代码时,我注意到我相当于列表“catdate”中的最后一个元素,而不是列出等同于“catdate”的“catdate”索引。交叉点值。
非常感谢任何帮助!
答案 0 :(得分:2)
如果您想测试x
是否在您的十字路口,您应该使用:
indices = [i for (i, x) in enumerate(catdate) if x in set(NNSRCfile['datetimenew']).intersection(catdate)]
for i in indices:
print i
否则,您将单个元素与一个集合进行比较,这不太可行(因此,测试总是失败,您的indices
列表为空,没有任何内容被打印...
答案 1 :(得分:0)
set()与单个值不匹配,请尝试:
if set(x) == set( ...
就个人而言,我会避免在嵌套的上下文中使用相同的“i”,顺便说一下,虽然python alloqws。至少令人困惑的是阅读..