让这两个清单
x = [0,1,2,2,5,2,1,0,1,2]
y = [0,1,3,2,1,4,1,3,1,2]
如何在python中找到这两个列表中的类似元素并打印它们。 我在做什么 -
for i, j in x, y:
if x[i] == y[j]:
print(x[i], y[j])
我想找到像x [0],y [0]和x [1],y [1]等元素。 这不起作用,我是python的新手。 我想找到元素常见的确切索引。 我想找到索引0,1,3,6,8,9;因为这些指数的元素是相等的
答案 0 :(得分:0)
x = [0,1,2,2,5,2,1,0,1,2]
y = [0,1,3,2,1,4,1,3,1,2]
for i in range(len(x)):
if x[i] == y[i]:
print(i)
注意:如果列表不在同一个len中,这将产生索引超出范围的错误
答案 1 :(得分:0)
我想找到元素共同的确切索引。
enumerate
压缩序列:
>>> x = [0,1,2,2,5,2,1,0,1,2]
>>> y = [0,1,3,2,1,4,1,3,1,2]
>>> [i for i, (a, b) in enumerate(zip(x, y)) if a == b]
[0, 1, 3, 6, 8, 9]
zip(x, y)
会在同一索引处为x
和y
提供一对元素:
>>> zip(x, y)
[(0, 0), (1, 1), (2, 3), (2, 2), (5, 1), (2, 4), (1, 1), (0, 3), (1, 1), (2, 2)]
枚举此序列可为您提供每个项目的索引:
>>> list(enumerate(zip(x, y)))
[(0, (0, 0)), (1, (1, 1)), (2, (2, 3)), (3, (2, 2)), (4, (5, 1)), (5, (2, 4)), (6, (1, 1)), (7, (0, 3)), (8, (1, 1)), (9, (2, 2))]
如您所见,元素具有(int,(int,int))结构。这些元组在列表解析中使用for i, (x, y) in ...
语法解压缩。
最后,我们只关心(int,int)部分在两个位置(if a == b
)保持相同整数的那些,并且在这些匹配中,我们只采用索引i
。