如何移除Python嵌套列表(list of lists)元素空格且保留嵌套结构
嵌套列表保留层级去除元素空格的解决方案
你现有代码的问题在于仅初始化了一个外层空列表,遍历内层子列表的元素时直接将处理后的元素追加到外层列表,因此最终得到的是扁平化的单层列表,丢失了原有的嵌套结构。
实现方式1:嵌套列表推导式(最简洁写法)
直接通过两层推导分别处理外层子列表、内层元素,天然保留嵌套结构:
mylist = [[' a', ' b'],[' a', ' b', ' c'],[' a', ' c']] mylist2 = [[j.replace(' ', '') for j in sublist] for sublist in mylist]
运行后得到的mylist2结果为:[['a', 'b'], ['a', 'b', 'c'], ['a', 'c']],完全保留原有层级。
实现方式2:显式循环写法(更易理解)
如果更习惯用传统循环逻辑,需要在遍历每个子列表时先创建临时的内层空列表,将当前子列表处理后的所有元素存入临时列表,最后再把临时列表追加到外层结果列表中:
mylist = [[' a', ' b'],[' a', ' b', ' c'],[' a', ' c']] mylist2 = [] for sublist in mylist: # 为每个子列表创建临时存储容器 processed_sublist = [] for item in sublist: processed_item = item.replace(' ','') processed_sublist.append(processed_item) # 将处理完成的整个子列表加入外层结果 mylist2.append(processed_sublist)
运行后得到的结果和列表推导式完全一致。
内容的提问来源于stack exchange,提问作者haven
相关产品推荐
相关产品推荐

