我想在python(而不是任何其他函数)中使用join函数将两个列表合并到嵌套列表中,假设列表长度相等,例如:
list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
我希望它生成一个这样的新列表:
[[1,"a"], [2,"b"], [3,"c"]]
Run Code Online (Sandbox Code Playgroud)
我不认为你理解的是什么str.join.
str.join 是一个字符串方法,它接受一个可迭代的(通常是一个列表)字符串,并返回一个新的字符串对象,该字符串对象是由调用该方法的字符串分隔的字符串的串联.
以下是演示:
>>> strs = ['a', 'b', 'c']
>>> ''.join(strs)
'abc'
>>> '--'.join(strs)
'a--b--c'
>>>
Run Code Online (Sandbox Code Playgroud)
这意味着你不会str.join用于你想要做的事情.相反,您可以使用zip和列表理解:
>>> list1 = [1, 2, 3]
>>> list2 = ["a", "b", "c"]
>>> [list(x) for x in zip(list1, list2)]
[[1, 'a'], [2, 'b'], [3, 'c']]
>>>
Run Code Online (Sandbox Code Playgroud)
但请注意,如果您使用的是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']]
>>>
Run Code Online (Sandbox Code Playgroud)
像Python 3.x一样zip,itertools.izip将返回一个迭代器(而不是像Python 2.x这样的列表zip).这使得它更有效,特别是在处理更大的列表时.