首页 > 解决方案 > 将列表变成字典

问题描述

我知道这个问题已经被问过一百万次了,但是我很难为我的问题找出一个灵魂。

这是我的代码:

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']}

标签: pythonpython-3.x

解决方案


您可以像这样使用嵌套的 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']}

推荐阅读