Python嵌套列表内部拆分:将子列表字符串拆为单个字符列表
如何拆分嵌套列表中的字符串为单个字符?
看起来你是想把嵌套列表里的每个字符串元素拆成单个字符组成的子列表对吧?先回顾下你的需求:
你初始的列表是:
List=[['this'],['is'],['a'],['sentence']]
期望得到的输出是:
List=[['t','h','i','s'],['i','s'],['a'],['s','e','n','t','e','n','c','e']]
你之前用的列表推导式[j for i in list for j in i ]之所以得到['this','is','a','sentence'],是因为这个推导式只是把最内层的小列表给拉平了,并没有把字符串拆成单个字符——它只完成了一层拆解,没处理字符串到字符的拆分。
那怎么实现你的需求呢?我们只需要在列表推导式里多嵌套一层,针对每个子列表里的字符串做字符拆分就行,给你两种写法:
针对每个子列表只有一个字符串的场景(符合你的例子)
original_list = [['this'], ['is'], ['a'], ['sentence']] result = [[char for char in sublist[0]] for sublist in original_list] print(result)
这个写法的逻辑很直接:
- 外层循环遍历
original_list里的每个子列表(比如['this']) - 内层循环取子列表里的第一个元素(也就是目标字符串),把它的每个字符逐个拆出来,组成新的子列表
更通用的版本(适配子列表有多个字符串的情况)
如果你的子列表里可能有多个字符串(比如['hello', 'world']),可以用下面的写法,它会把每个子列表里的所有字符串都拆成字符并合并到同一个子列表里:
original_list = [['this'], ['is'], ['a'], ['sentence']] result = [[char for s in sublist for char in s] for sublist in original_list] print(result)
运行上面任意一段代码,都会得到你想要的输出:
[['t', 'h', 'i', 's'], ['i', 's'], ['a'], ['s', 'e', 'n', 't', 'e', 'n', 'c', 'e']]
内容的提问来源于stack exchange,提问作者N.ozomaki
相关产品推荐
相关产品推荐

