Skip to main content
 首页 » 编程设计

python之在python中将两个列表连接成元组

2025年05月04日13sxdcgaq8080

我想使用 python 中的 join 函数(不是任何其他函数)将两个列表合并为嵌套列表,假设列表长度相等,例如:

list1 = [1, 2, 3] 
 
list2 = ["a", "b", "c"] 

我希望它产生一个像这样的新列表:

[[1,"a"], [2,"b"], [3,"c"]] 

请您参考如下方法:

我认为你不明白 str.join 的用途。

str.join是一个字符串方法,它接受一个可迭代的字符串(通常是一个列表)并返回一个新的字符串对象,该对象是由调用该方法的字符串分隔的那些字符串的串联。

下面是一个演示:

>>> strs = ['a', 'b', 'c'] 
>>> ''.join(strs) 
'abc' 
>>> '--'.join(strs) 
'a--b--c' 
>>> 

这意味着您不会将 str.join 用于您正在尝试执行的操作。相反,您可以使用 zip和一个 list comprehension :

>>> list1 = [1, 2, 3] 
>>> list2 = ["a", "b", "c"] 
>>> [list(x) for x in zip(list1, list2)] 
[[1, 'a'], [2, 'b'], [3, 'c']] 
>>> 

但是请注意,如果您使用的是 Python 2.x,则可能需要使用 itertools.izip而不是 zip:

>>> from itertools import izip 
>>> list1 = [1, 2, 3] 
>>> list2 = ["a", "b", "c"] 
>>> [list(x) for x in izip(list1, list2)] 
[[1, 'a'], [2, 'b'], [3, 'c']] 
>>> 

与 Python 3.x zip 一样,itertools.izip 将返回一个迭代器(而不是像 Python 2.x zip 那样的列表>).这使其更加高效,尤其是在处理更大的列表时。