如何检查 python 中两个不同列表中的相同位置

How to check same position in two different lists in python

我是 python 的新手。

我有两个不同的列表

 A = [0,0,0,0,0,20,40,0]  
 B = [0,0,0,0,0,3,0,0]

在列表 A 中,它在位置 5 和 6 处有值。所以我想在列表 B 中的位置 5 和 6 处获得相应的值(3 和 0)。

所以你能给我一些建议吗?

提前致谢。

将枚举与 list_comprehension 一起使用。

>>> A = [0,0,0,0,0,20,40,0]
>>> B = [0,0,0,0,0,3,0,0]
>>> [B[i] for i,j in enumerate(A) if j != 0]
[3, 0]
>>> [B[i] for i,j in enumerate(A) if j]
[3, 0]

只需遍历列表并检查非零值。

A = [0,0,0,0,0,20,40,0]  
B = [0,0,0,0,0,3,0,0]
j = 0
for item in A:
    if item != 0:
        temp = B[j]
        print(temp)
        j = j+1
    else:
        j = j+1

输出:

3 0

列表理解的解决方案很好,但对于初学者来说很难阅读。使用 j 迭代器的解决方案很好,但您可以使用内置的 enumerate() 函数来做同样的事情。

A = [0,0,0,0,0,20,40,0]    
B = [0,0,0,0,0,3,0,0]

for index, val in enumerate(A):
    if val != 0:
        temp = B[index]
        print(temp)

输出30

>>> A = [0,0,0,0,0,20,40,0]  
>>> B = [0,0,0,0,0,3,0,0]
>>> [j for i, j in zip(A, B) if i]
[3, 0]