2016-04-26 104 views
-1

在這裏得到沮喪,所以非常歡迎。使用詞典理解構造一個嵌套字典

我有一個文件,data_fields

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

其中一期工程OK〜十歲上下。 但沒有創造的利益,人民的dict()前面我一直在試圖把某種形式的字典理解在一起將包括「的人在閱讀器循環」,讓我做

return <elusive dict comprehension yielding same dict as above> 

在這個努力中,我徹底失敗了。並花費了大量的時間。有時間請問這裏的專家! 任何人都可以幫助這個難以理解的理解?這可能與python(在這裏運行2.7.6)。

感謝

回答

1

關於什麼:

people={person[UIDindex]:{k:v for k,v in zip(headers, person) if not k=='UID'} for person in reader}