我知道这个问题已经问过无数次了,但我很难想出解决问题的办法。
这是我的密码:
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']}发布于 2019-04-05 17:41:05
您可以使用这样的嵌套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']}发布于 2019-04-05 17:40:51
这样就行了。
lst = ['lion,gazelle', 'jackal,grass,zebra,gazelle', 'gazelle,grass,acacia leaves', 'zebra,grass']
dct = {}
for l in lst:
items = l.split(',')
dct[items[0]] = items[1:]
print(dct)
#{'lion': ['gazelle'], 'jackal': ['grass', 'zebra', 'gazelle'], 'gazelle': ['grass', 'acacia leaves'], 'zebra': ['grass']}发布于 2019-04-05 17:58:38
你需要有两个列表来做这个。1对于键1的值,尝试将捕食者和捕食者分成2个列表,然后使用zip将它们合并到字典中。
keys = ["lion", "jackal", 'gazelle']
values = [["gazelle"], ["grass, zebra, gazelle"], ["grass, acacia leaves"]]
dict1 = dict(zip(keys, values))
print(dict1)https://stackoverflow.com/questions/55540689
复制相似问题