[英]How do I sort a list of dictionaries by last name of the dictionary in Python?
我需要編寫一個sort_contacts函數,該函數將聯系人字典作為參數,並返回這些聯系人的排序列表,其中每個聯系人都是一個元組。
將傳遞到函數中的聯系人字典以聯系人名稱作為鍵,值是一個包含該聯系人的電話號碼和電子郵件的元組。
聯系人= {姓名:(電話,電子郵件),姓名:(電話,電子郵件)等}
然后,sort_contacts函數應創建一個新的,已排序(按姓氏排序)的元組列表,該列表表示字典中的所有聯系人信息(每個聯系人一個元組)。 然后,應將此列表返回給調用函數。
例如,給定一個字典參數:
{("Horney, Karen": ("1-541-656-3010", "karen@psychoanalysis.com"),
"Welles, Orson": ("1-312-720-8888", "orson@notlive.com"),
"Freud, Anna": ("1-541-754-3010", "anna@psychoanalysis.com")}
sort_contacts應該返回以下內容:
[('Freud, Anna', '1-541-754-3010', 'anna@psychoanalysis.com'),
('Horney, Karen', '1-541-656-3010', 'karen@psychoanalysis.com'),
('Welles, Orson', '1-312-720-8888', 'orson@notlive.com')]**
您可以簡單地添加key
和value
並進行sort
:
>>> sorted((k,)+v for k, v in contacts.items())
[('Freud, Anna', '1-541-754-3010', 'anna@psychoanalysis.com'),
('Horney, Karen', '1-541-656-3010', 'karen@psychoanalysis.com'),
('Welles, Orson', '1-312-720-8888', 'orson@notlive.com')]
如果您不關心嵌套元組,則可以簡單地:
>>> sorted(contacts.items())
[('Freud, Anna', ('1-541-754-3010', 'anna@psychoanalysis.com')),
('Horney, Karen', ('1-541-656-3010', 'karen@psychoanalysis.com')),
('Welles, Orson', ('1-312-720-8888', 'orson@notlive.com'))]
def sort_contacts(contacts):
real_contacts=[]
function_keys=contacts.keys()
for key in sorted(function_keys):
data = (key, contacts[key][0], contacts[key][1])
real_contacts.append(data)
return real_contacts
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.