Python中如何用列表推导式以'X'分隔拼接嵌套列表为字符串
问题修复:嵌套列表按指定分隔符拼接为字符串
原代码存在三个问题:
- 引用了未定义变量
formatted_list,应替换为实际输入变量val - 错误使用
enumerate(row):遍历enumerate(val)得到的是(索引, 子列表)元组,直接枚举该元组会遍历索引值和子列表对象,而非子列表内的元素 - 逻辑偏差:原代码试图将
X追加到子列表最后一个元素后,但需求中X是子列表之间的独立分隔符,需与前后元素用空格隔开
修改后的代码(两种实现方式)
方式一:简洁实现(推荐)
先将每个子列表内部用空格拼接为字符串,再用' X '连接所有子列表结果:
val = [['_', '_', '_', '_'], ['_', '_', '_', '_', '_']] output = ' X '.join(' '.join(sublist) for sublist in val) print(output)
方式二:列表推导式实现(符合需求写法)
通过列表推导式收集所有元素,并在每个子列表(除最后一个)末尾添加X,最后用空格连接:
val = [['_', '_', '_', '_'], ['_', '_', '_', '_', '_']] output = ' '.join( item for idx, sublist in enumerate(val) for item in sublist + (['X'] if idx != len(val)-1 else []) ) print(output)
验证示例
输入示例2:
val = [['t', 'python'], ['2', '6', '7'], ['9', '5']]
两种方式均输出:
t python X 2 6 7 X 9 5
内容的提问来源于stack exchange,提问作者edge selcuk
相关产品推荐
相关产品推荐

