Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将多个字符串从一个列表复制并附加到另一个列表中_Python_List_Loops - Fatal编程技术网

Python 如何将多个字符串从一个列表复制并附加到另一个列表中

Python 如何将多个字符串从一个列表复制并附加到另一个列表中,python,list,loops,Python,List,Loops,比方说,我有一个清单如下: list1 = ['jenny', 'bob', 'dan'] 我想将列表1中的每个项目复制到第二个列表中,如下所示: list2 = [('jenny', 'bob'), ('bob','dan'),('dan','jenny')] #This is my code: list2=[] for i in range(len(list2)): list2 += list1[i] print(list2) 糟糕的是,我的代码甚至不能将一个单词复制到列表2

比方说,我有一个清单如下:

list1 = ['jenny', 'bob', 'dan']
我想将列表1中的每个项目复制到第二个列表中,如下所示:

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

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

print(list2)

糟糕的是,我的代码甚至不能将一个单词复制到列表2中,而是一个字符一个字符地复制。

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

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

[('jenny', 'bob'), ('jenny', 'dan'), ('bob', 'dan')]
[('jenny', 'bob'), ('bob','dan'),('dan','jenny')]
如果希望每个项目与下一个项目合作(如果在循环结束时循环),可以使用模
%

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

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

这里有一个可能的解决办法<代码>列表2是使用第i个和(i+1)个元素构建的:

list1 = ['jenny', 'bob', 'dan']
list2 = [(el1, el2) for el1, el2 in zip(list1, list1[1:]+[list1[0]])]
输出:

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

如果您的目标是拥有2的所有组合,那么itertoolsUse变量list1中已经有了对该组合的支持,请不要编写该列表again@azroOP在使用简单的
for
循环时已经遇到了困难,如果目标是编写尽可能短的代码而不是显式的代码以避免混淆,我会把它写在一行中,而不是使用
list1
以及创建一个要使用的变量,我说的是
list(itertools.combines([list1,r=2))
@azro Point take and I stand correct.Answer updated.@VictorE,如果我再添加一个list>list3作为list3=['John','Delly','San','Doe'].我希望从列表1和列表3的组合中得到预期的输出:[('jenny','bob'),('bob','dan'),('dan','John'),('John','Delly'),('Delly','San'),('San','Doe')]?提前感谢一个没有解释的回答不重视任何东西。而且这不是一场比赛,不要告诉我你在后面做;)@riccardo,谢谢你的代码。在for语句之前(el1,el2)的目的是什么?