我需要编写一个sort_contacts函数,它将联系人字典作为参数,并返回这些联系人的排序列表,其中每个联系人都是一个元组。
将传递给该函数的联系人字典将联系人姓名作为其密钥,该值是包含该联系人的电话号码和电子邮件的元组。
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')]**
答案 0 :(得分:3)
您只需添加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'))]
答案 1 :(得分:-1)
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