Python实现为嵌套列表的每个元素添加前后空格
给嵌套列表的每个元素前后添加空格
你的目标是保留嵌套列表的原有结构,同时给每个元素的前后都加上空格。你当前的代码把二维嵌套列表展平成了一维列表,所以需要调整处理逻辑来维持层级结构。
方法一:嵌套列表推导式(最简洁)
直接在原嵌套结构的基础上,逐层处理每个元素:
data = [["hello", "world"], ["python", "is", "cool"]] data_new = [[' {0} '.format(word) for word in elem] for elem in data] print(data_new) # 输出: [[" hello ", " world "], [" python ", " is ", " cool "]]
也可以用更简洁的f-string写法,效果完全一致:
data_new = [[f' {word} ' for word in elem] for elem in data]
方法二:嵌套循环(更直观)
如果觉得列表推导式不够清晰,用嵌套循环逐个处理元素也能达到目的:
data = [["hello", "world"], ["python", "is", "cool"]] data_new = [] for sub_list in data: processed_sub = [] for word in sub_list: processed_sub.append(f' {word} ') data_new.append(processed_sub) print(data_new) # 输出符合预期的嵌套结构
原有代码的问题说明
你写的[' {0} '.format(word) for elem in data_new2 for word in elem]是展平式列表推导,它会把所有子列表里的元素合并到一个一维列表中,直接丢失了原有的嵌套层级。而嵌套列表推导式[[处理逻辑 for 元素 in 子列表] for 子列表 in 原列表]能完整保留原有的二维结构。
内容的提问来源于stack exchange,提问作者Fraser
相关产品推荐
相关产品推荐

