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

发布于 2021-01-29 14:57:27

我有一个字符串列表如下

lst = [['a','b','c'],['@','$','#'],['1','2','3']]

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

['a@1','b$2','c#3']

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

map(str.__add__,(x for x in list))

请帮忙。

关注者
0
被浏览
68
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看