[英]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.