Python中将三层嵌套列表按指定规则转换为字符串列表的实现问题
解决思路
- 先确认你的三层列表结构为
[外层列表[第二层列表[最内层单字符串列表]]],需求核心是按第二层的索引对齐,拼接所有外层列表中相同第二层索引位置的最内层字符串 - 利用Python内置的
zip(*可迭代对象)特性直接对输入列表按第二层维度做转置,转置后每个分组就是所有外层列表下相同第二层索引的子列表集合 - 遍历每个分组,提取所有最内层的字符串后用空格拼接,即可得到目标结果
代码实现
注意Python中input是内置函数,不建议作为变量名使用,示例中改用input_list命名:
# 输入示例 input_list = [[['a b c'], ['d e f'], ['g h i']], [['j k l'], ['m n o'], ['p q r']], [['s t u'], ['v w x'], ['y z zz']]] # 实现代码(列表推导式写法) output = [' '.join(inner[0] for inner in group) for group in zip(*input_list)] # 输出验证 print(output) # 运行结果:['a b c j k l s t u', 'd e f m n o v w x', 'g h i p q r y z zz']
如果需要更易读的分步写法,可以参考如下:
output = [] # 按第二层维度分组 for group in zip(*input_list): str_collect = [] for inner_list in group: # 提取最内层字符串 str_collect.append(inner_list[0]) # 拼接后加入结果 output.append(' '.join(str_collect))
内容的提问来源于stack exchange,提问作者Shoko
相关产品推荐
相关产品推荐

