明智的元素连接多个列表(字符串列表)

Shi*_*ith 6 python list concatenation python-3.x

我有一个字符串列表如下

lst = [['a','b','c'],['@','$','#'],['1','2','3']]
Run Code Online (Sandbox Code Playgroud)

我想明智地将list元素内的每个字符串连接起来,预期输出如下:

['a@1','b$2','c#3']
Run Code Online (Sandbox Code Playgroud)

的大小lst可以变化。有没有任何方法可以完成此操作而无需进行for循环。
我尝试使用地图,但无法正常工作。

map(str.__add__,(x for x in list))
Run Code Online (Sandbox Code Playgroud)

请帮忙。

yat*_*atu 11

这是压缩子列表并使用''.join生成的元组进行映射的一种方法:

list(map(''.join, zip(*lst)))
# ['a@1', 'b$2', 'c#3']
Run Code Online (Sandbox Code Playgroud)

zip如docs所示,此处汇总了多个可迭代对象的元素。通过添加*,我们正在解压缩列表,这意味着该函数将改为接收zip(['a','b','c'],['@','$','#'],['1','2','3'])

现在,在每次迭代中,map将应用于''.join每个聚合的可迭代对象,即,应用于每个子列表中的第一个元素,然后应用于第二个,依此类推。