如何拆分嵌套列表中的字符串以得到目标列表结构?
解决Python列表拆分合并问题
你遇到的问题很典型——之前的列表推导式只处理了每个子列表的第一个元素,完全没把第二个元素整合进去。要实现目标,只需要把拆分后的第一个元素列表和第二个元素合并起来就行。
最简单的解决方案
用列表推导式将拆分后的结果与子列表的第二个元素拼接:
lst = [['one two', 'three'], ['four five', 'six']] new_lst = [i[0].split() + [i[1]] for i in lst] print(new_lst) # 输出: [['one', 'two', 'three'], ['four', 'five', 'six']]
为什么之前的方法无效?
你写的[i[0].split() for i in lst]只对每个子列表的第一个元素(比如'one two')进行了拆分,完全忽略了第二个元素('three'和'six')。上面的代码通过+ [i[1]]把第二个元素添加到拆分后的列表末尾,正好得到你想要的结构。
更通用的写法(适配子列表多元素场景)
如果你的子列表可能包含更多元素(比如不止两个),可以用更灵活的方式:遍历每个子列表,拆分所有带空格的元素,再把所有结果合并成一个列表:
new_lst = [] for sublist in lst: temp = [] for item in sublist: temp.extend(item.split()) new_lst.append(temp)
这种方法不管子列表里有多少个元素,只要是带空格的字符串都会被拆分,最后合并成一个扁平的子列表。
内容的提问来源于stack exchange,提问作者Alex Nikitin
相关产品推荐
相关产品推荐

