[英]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 循環中,將元組解包到變量i
和j
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.