繁体   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