利用dict理解构造嵌套词典

2024-04-26 17:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里感到沮丧,所以非常欢迎帮助。你知道吗

我有一个文件,数据字段

lname,fname,age,UID
macpherson,tom,16,219 
goldman,tim,13,316
smith,jon,11,414
doe,jon,59,512

我正在制作一本字典,上面键入了下面的UID值

import csv
with open(data_fields) as readme:
    reader = csv.reader(readme)
    headers = reader.next()
    UIDindex = headers.index('UID')
    people = dict()
    for person in reader:
        people[person[UIDindex]] = {k:v for k,v in zip(headers,person) if not k=='UID'}
import pprint
pprint.pprint(people)

{'219': {'age': '16', 'fname': 'tom', 'lname': 'macpherson'},
'316': {'age': '13', 'fname': 'tim', 'lname': 'goldman'},
'414': {'age': '11', 'fname': 'jon', 'lname': 'smith'},
'512': {'age': '59', 'fname': 'jon', 'lname': 'doe'}}

这很管用。 但为了避免预先创建people dict(),我一直在尝试将一些形式的dict理解放在一起,包括“for person in reader循环”,并允许我这样做

return <elusive dict comprehension yielding same dict as above>

在这项努力中,我彻底失败了。花了很多令人沮丧的时间。是时候问问这里的专家了! 有人能帮助你理解这个难以捉摸的问题吗?python(这里运行的是2.7.6)能做到这一点吗。你知道吗

谢谢


Tags: inforageuidpeoplefnamedictreader