2016-10-21 115 views
0

我已經開始學習python,我有一個問題。我有一個列表,我想將它轉換成字典。這怎麼可能?Python List to Dictionaries

例如,我有一個類:

Person (name, surname, age, country) 

我創造了許多人的對象,並將它們添加到列表中。但是,在列表中搜索需要很長時間,所以我想創建一個字典。我怎樣才能將這個人名單轉換成字典?

感謝

+0

字典是鍵映射到值。這意味着當你想從字典中獲得一個值時,你給它一個關鍵字並且獲取這個值。你的字典的關鍵是什麼? –

回答

5

使用dict comprehension

# Assusming "person_list" is your list of "Person" objects 
name_to_person = { p.name: p for p in person_list } 

用法:

george_details = name_to_person['George'] 
print "George is %d years old"%(george_detals.age) 

當然,你不必限制你的鑰匙的Person成員。如果你想通過namesurname組合來查找,例如:

fullname_to_person = { p.name + ' ' + p.surname: p for p in person_list } 
+0

我需要設置所有的名字,姓氏,年齡在字典中。 在這種情況下只會有名字? – Soulmaster

+0

字典將鍵映射到值。在這種情況下,鍵將是名稱。價值將是人。所以,當你在字典中查找「George」時,你會發現一個人('George','Jones',81,'US')' –

+0

@Soulmaster否,整個對象在字典中值。按名稱獲取對象,然後訪問其所有屬性 – brianpck