Python中动态拼接嵌套列表对应位置元素的实现方法求助
Python 动态拼接嵌套列表对应位置元素
问题场景
现有嵌套列表:
my_list = [["A", "A", "A", "A", "B", "B", "B", "B"], ["C", "C", "D", "D", "C", "C", "D", "D"], ["E", "F", "E", "F", "E", "F", "E", "F"]]
需要将各子列表对应位置的元素拼接,生成新列表:
new_list = ["ACE", "ACF", "ADE", "ADF", "BCE", "BCF", "BDE", "BDF"]
当前实现需要预先明确父列表中子列表的数量,希望实现动态适配任意数量子列表的拼接逻辑,无需硬编码子列表索引。
解决方案
使用Python内置的zip()函数配合str.join(),可以完美实现动态适配:
my_list = [["A", "A", "A", "A", "B", "B", "B", "B"], ["C", "C", "D", "D", "C", "C", "D", "D"], ["E", "F", "E", "F", "E", "F", "E", "F"]] # 动态拼接对应位置元素 new_list = [''.join(items) for items in zip(*my_list)] print(new_list)
代码说明
zip(*my_list):通过解包操作*,将原嵌套列表的所有子列表作为独立参数传入zip(),zip()会自动将各子列表对应位置的元素打包成元组(比如第一个元组为('A', 'C', 'E'),第二个为('A', 'C', 'F'))。''.join(items):对每个元组执行字符串拼接,将元组内的字符合并为一个完整字符串。- 列表推导式:遍历所有打包后的元组,生成最终的结果列表。
这种写法无需关心子列表的数量,无论原列表有2个还是10个子列表,都能自动完成对应位置的拼接。
内容的提问来源于stack exchange,提问作者Akippp
相关产品推荐
相关产品推荐

