如何在Python中连接两个列表?

如何在Python中连接两个列表?,python,list,Python,List,我想这样: to_do_list = ["studying", "coding"] Times = [3, 4] #per hour 连接是指将一个列表添加到另一个列表的末尾: ["studying", 3, "coding", 4] [1,3,2,4] 但你不想这样;你想让他们交替!zip函数是一种很好的方法: >>> to_do_list + Times ['studying', 'coding', 3, 4] Python中有两个字典,它们相互匹配: 这是您正在

我想这样:

to_do_list = ["studying", "coding"]

Times = [3, 4] #per hour

连接是指将一个列表添加到另一个列表的末尾:

["studying", 3, "coding", 4]
[1,3,2,4]
但你不想这样;你想让他们交替!
zip
函数是一种很好的方法:

>>> to_do_list + Times
['studying', 'coding', 3, 4]

Python中有两个字典,它们相互匹配:

这是您正在寻找的,还是您正在尝试将这两个列表自动组合 本词典={ “品牌”:“福特”, “模型”:“野马”, “年份”:1964年 } 打印(thisdict)

签出,它共享以下内容

>>> [t for t in zip(to_do_list, Times)]
[('studying', 3), ('coding', 4)]
>>> [i for t in zip(to_do_list, Times) for i in t]
['studying', 3, 'coding', 4]
对于您的程序,您可以执行以下操作:

# initializing lists  
test_list1 = [1, 4, 5] 
test_list2 = [3, 8, 9] 

# printing original lists 
print ("Original list 1 : " + str(test_list1)) 
print ("Original list 2 : " + str(test_list2)) 

# using list slicing 
# to interleave lists 
res = test_list1 + test_list2 
res[::2] = test_list1 
res[1::2] = test_list2 

# printing result 
print ("The interleaved list is : " + str(res)) 

最快的解决方案可能是使用zip:

>>> to_do_list = ["studying", "coding"]
>>> times=[3,4]
>>> res = to_do_list + times #combine lists
>>> res[::2] = to_do_list #every other element starting at 0
>>> res[1::2] = times #every other element starting at 1
>>> print(res)
['studying', 3, 'coding', 4]
或一些列表理解:

list1 = [1,2]
list2 = [3,4]

list(zip(list1,list2))
输出:

[sub_list[i] for i in range(len(list2)) for sub_list in [list1, list2]] 

对于其他解决方案:

连接是指将一个列表添加到另一个列表的末尾:

["studying", 3, "coding", 4]
[1,3,2,4]
但你不想这样;你想让他们交替!
zip
函数是一种很好的方法。当您
zip
将两个列表压缩在一起时,您会得到一个元组表,将列表“压缩”在一起:

>>> to_do_list + Times
['studying', 'coding', 3, 4]
要从这些元组中取出元素并将它们放入一个列表中,请添加另一个理解(即对从
zip
中得到的每个
t
执行类似于
for i in t
的操作):


有多种方法可以做到这一点

如果您想做的任务是“将每个列表中的元素交替放置到一个列表中”,那么最直观的方法就是使用for循环

假设两个列表长度相同

list_1=[1,2,3,4,5]
列表2=['a','b','c','d','e']
列表输出=[]
对于范围内的i(len(列表_1)):
list_out.append(list_1[i])
list_out.append(list_2[i])
或者,如果您想做得更简单,请尝试以下操作:

list\u out=sum([[a,b]表示a,b在zip中(list\u 1,list\u 2)],[]
(实际上,上面的代码可以分为两行:

zip=[[a,b]对于zip中的a,b(列表1,列表2)]#使用列表理解和zip函数
#压缩=[[1,'a'],[2,'b'],[3,'c'],[4,'d'],[5,'e']]
list_out=sum(压缩,[])#在“压缩”中连接所有列表元素

您好,到目前为止您自己尝试了什么?似乎您想要交错,而不仅仅是串联。我担心这是一个XY问题,这个答案实际上是正确的。OP:您想要一个数据的平面列表,还是要将这些值(
3
4
)分配给这些键(
学习
编码
)这不是一个真正的答案,但我认为你的思路是对的。试着教OP如何将
列表键
列表值
转换成
组合字典
这比
列表(zip(列表1,列表2))要好
?与我的实际情况几乎相同,它导致嵌套列表组件的性能降低50%。zip的
401纳秒/循环
和列表组件的
681纳秒/循环