python - 如何将列表中的多个字符串复制并附加到另一个列表中
问题描述
可以说,我在下面有一个列表:
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 中,而是一个字符一个字符地复制。
解决方案
您可以使用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')]