首页 > 解决方案 > 如何将列表中的多个字符串复制并附加到另一个列表中

问题描述

可以说,我在下面有一个列表:

list1 = ['jenny', 'bob', 'dan']

我想将 list1 中的每个项目复制到第二个列表中,如下所示:

list2 = [('jenny', 'bob'), ('bob','dan'),('dan','jenny')]

#This is my code:
list2=[]
for i in range(len(list2)):
    list2 += list1[i]

print(list2)

糟糕的是,我的代码甚至无法将一个单词复制到 list2 中,而是一个字符一个字符地复制。

标签: pythonlistloops

解决方案


您可以使用itertools.combinations()获取组合:

list1 = ['jenny', 'bob', 'dan']
list2 = list(itertools.combinations(list1, r=2))
print(list2)

输出:

[('jenny', 'bob'), ('jenny', 'dan'), ('bob', 'dan')]

如果您想将每个项目与下一个项目合作(如果在循环结束时循环),您可以使用 modulo %

list1 = ['jenny', 'bob', 'dan']
list2 = []
for i, name in enumerate(list1):
    name2 = list1[(i+1) % len(list1)]
    list2.append((name, name2))

输出:

[('jenny', 'bob'), ('bob','dan'),('dan','jenny')]

推荐阅读