簡體   English   中英

如何以特定順序遍歷兩個列表

[英]How to iterate over two lists in a specific order

我有兩個清單:

list1 = ['A','C','E','G','A']
list2 = ['B','D','F','H','N']

我想將這些新名稱和 append 創建到一個空列表中

A_vs_B
C_vs_D
E_vs_F
G_vs_H
A_vs_N

結構是,list1 中的第 1 項與列表 2 中的第 1 項,依此類推。 我只想要這些名字。

這是我到目前為止所做的

newlist = []
for i in list1:
    for j in list 2:
        name = i + '_vs_' + j
        newlist.append(name)

問題在於它會在 list1 和 list2 之間創建所有可能的名稱組合。 如何限制我的循環只產生我想要的名字?

使用zip() ,它接受兩個列表(或其他可迭代對象)並創建一個可迭代的元組。 在 for 循環中,將元組解包到變量ij

newlist = []
for i, j in zip(list1, list2):
    name = i + '_vs_' + j
    newlist.append(name)

您可以使用格式字符串進一步改進您的代碼:

newlist = []
for i, j in zip(list1, list2):
    newlist.append(f'{i}_vs_{j}')

並使用列表理解:

newlist = [f'{i}_vs_{j}' for i, j in zip(list1, list2)]

你可以試試:

list1 = ['A','C','E','G','A']
list2 = ['B','D','F','H','N']

newlist = []

for i in range(0, len(list1)):
    name = list1[i] + '_vs_' + list2[i]
    newlist.append(name)
print(newlist)

暫無
暫無

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

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