首页 > 解决方案 > 将嵌套的字符串列表转换为字符串列表

问题描述

我有一个双重嵌套的字符串列表,我需要将其转换为嵌套的字符串列表。我在网上找到了一些帮助,但有些单词会丢失或列表已排序。

new_list = [[['SOCCER'],['-'],['JAPAN'],['GET'],['LUCKY'],['WIN'],[','],['CHINA'],['IN'],
  ['SURPRISE'],['DEFEAT'],['.']]]
### Expected Result [['SOCCER', '-', 'JAPAN', 'GET', 'LUCKY', 'WIN', ',', 'CHINA', 'IN', 'SURPRISE', 'DEFEAT', '.'], ...

alot = [[ele for ele in sub] for sub in new_list]
outlst = [' '.join([str(c) for c in lst]) for lst in new_list]

标签: pythonlistsplitnltknested-lists

解决方案


一种方法是使用chain.from_iterable

from itertools import chain

new_list = [[['SOCCER'],['-'],['JAPAN'],['GET'],['LUCKY'],['WIN'],[','],['CHINA'],['IN'],
  ['SURPRISE'],['DEFEAT'],['.']]]

result = [list(chain.from_iterable(e)) for e in new_list]
print(result)

输出

[['SOCCER', '-', 'JAPAN', 'GET', 'LUCKY', 'WIN', ',', 'CHINA', 'IN', 'SURPRISE', 'DEFEAT', '.']]

另一种是使用嵌套列表理解

result = [[s for lst in e for s in lst] for e in new_list]

推荐阅读