python - 将列表变成字典
问题描述
我知道这个问题已经被问过一百万次了,但是我很难为我的问题找出一个灵魂。
这是我的代码:
try:
dict1={}
main_list = [line.rstrip() for line in open("food01.csv")]
print(main_list)
except IOError:
print("Error opening file")
文件的输出(CSV):
['lion,gazelle', 'jackal,grass,zebra,gazelle', 'gazelle,grass,acacia leaves', 'zebra,grass']
我想要的是这样的列表字典:
{'lion':['gazelle'],'jackal':['grass,zebra,gazelle'],'gazelle':['grass,acacia leaves'],'zebra':['grass']}
解决方案
您可以像这样使用嵌套的 dict 理解:
{first: rest for cols in rows for first, *rest in (cols.split(','),)}
所以给出:
rows = ['lion,gazelle', 'jackal,grass,zebra,gazelle', 'gazelle,grass,acacia leaves', 'zebra,grass']
这返回:
{'lion': ['gazelle'], 'jackal': ['grass', 'zebra', 'gazelle'], 'gazelle': ['grass', 'acacia leaves'], 'zebra': ['grass']}
推荐阅读
- ios - 我的应用程序声音输出的音频过滤器
- google-colaboratory - 在 google colab 上高效存储大型数据集
- java - 将调试器附加到 neo4j 程序 jar
- tensorflow - Tensorflow 分类的问题 - 损失没有减少
- python - SQLAlchemy - 如何否定任何表达式
- reactjs - react-router V5 在导航时保留查询参数
- multidimensional-array - Julia:跨矩阵行广播`findfirst()`
- powershell - Powershell - 通过查找路径函数获取路径位置
- android - 如何在 expo 应用程序中激发离线模式
- arrays - 在 API 中使用用户输入以按用户加载数据时发现预期