python - 将嵌套的字符串列表转换为字符串列表
问题描述
我有一个双重嵌套的字符串列表,我需要将其转换为嵌套的字符串列表。我在网上找到了一些帮助,但有些单词会丢失或列表已排序。
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]
解决方案
一种方法是使用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]
推荐阅读
- build - 在 Azure DevOps 上构建 sqlproj
- r - R MLR 包 - 保存每个参数的性能
- powershell - 在PowerShell中添加六十进制时间
- java - 在 Selenium Webdriver 中获取会话 ID 返回字母数字格式如何保持原始格式?
- jquery - jQuery将检查的输入文本传递给不同的输入
- javascript - 在 MacOS 下拉菜单中移动复选标记
- xml - 按名称标签的字母顺序对xml文件进行排序
- php - WordPress 插件激活触发致命错误
- java - 如何在地图中添加EOF
- python - 随机密钥和空格的凯撒密码问题