首先,如果标题问题很模糊,我道歉。
为了澄清问题,我将直接进行解释。
假设你有两个长度相同的列表,例如
a = [1,2,3,4,5,6]
b = [3,1,4,2,5,6]
您要检查列表的每个索引是否相同。第一步是比较1和3。第二步是比较2和1。我尝试过的一个尝试是使用zip()方法,但在第一行之后:
`for i in zip(a,b):`
我认为没有合适的行来比较每个元素是否相等。
另一次尝试是:
for i in a:
for j in b:
,然后继续执行命令。然而,这也有问题,因为它将比较1,3,然后(1,1),(1,4),(1,2),…比较列表a中的第一个元素和列表b中的所有元素,然后比较列表a中的第二个元素和列表b中的所有元素。
谁能透露一些关于如何编码的命令比较每个元素与相同的索引从多个列表?
这是一个关于python 3的答案,因为这似乎是你正在使用的语言。
for i in a
遍历a
中的项。您要查找的是迭代其项的索引(从0到len(a) - 1
):
>>> for i in range(len(a)):
if a[i] == b[i] : print(i, "=>", a[i])
4 => 5
5 => 6
Python还具有一些函数式编程能力。下面是列表推导式的一个变体:
>>> common_indices = [ i for i in range(len(a)) if a[i] == b[i] ]
>>> for i in common_indices: print(i, "=>", a[i])
4 => 5
5 => 6
类似地,python也有字典理解。下面是字典理解的变体:
>>> common_values = { i: a[i] for i in range(len(a)) if a[i] == b[i] }
>>> for i, v in common_values.items(): print(i, "=>", v)
4 => 5
5 => 6