簡體   English   中英

如何在兩個列表中的相同索引處找到共同元素

[英]How to find common elements at the same indices in two lists

我有兩個列表,我想獲取兩個列表中和相同索引處的元素。 例如:

l1 = [1,2,4,7,0,6]
l2 = [1,6,9,7,5]

我想要: [1,7]

我的嘗試:

l3 = []
for i in range(len(l1)):
    if l1[i] == l2[i]:
        l3.append(l1[i])
print(l3)

產生錯誤:

Traceback (most recent call last):
  File "C:\Users\d-ss\Desktop\t1.py", line 5, in <module>
    if l1[i] == l2[i]:
IndexError: list index out of range

您可以使用zip()到 zip 這兩個列表,以便您可以同時遍歷它們:

l1 = [1,2,4,7,0,6]
l2 = [1,6,9,7,5]
l3 = []
for i, j in zip(l1, l2):
    if i == j:
        l3.append(i)
print(l3)

Output:

[1, 7]

你也可以把它變成一個列表推導:

l3 = [i for i, j in zip(l1, l2) if i==j]

試試這樣:

l1 = [1,2,4,7,0,6]
l2 = [1,6,9,7,5]
l3 = []
if len(l1)< len(l1):
    list_l = l1
else:
    list_l = l2
for i in range(len(list_l)):
    if l1[i] == l2[i]:
        l3.append(l1[i])
print(l3)

您可以使用len(l1 if len(l1)< len(l1)else l2獲得一個較小的列表。因此代碼將如下所示:

l1 = [1,2,4,7,0,6]
l2 = [1,6,9,7,5]
l3 = []
for i in range(len(l1 if len(l1)< len(l1)else l2)):
    if l1[i] == l2[i]:
        l3.append(l1[i])
print(l3)

output 將是:

[1, 7]

代碼中索引超出范圍的原因是len(l1) != len(l2)

zip 方法是並排檢查多個列表的好方法。

l1 = [1,2,4,7,0,6]
l2 = [1,6,9,7,5]

l = [x[0] for x in zip(l1, l2) if x[0] == x[1]]
print(l)

[1, 7]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM