[英]Converting Dictionary to Sorted List of Tuples
所以我試圖將字典轉換為包含元組的排序列表。 我已經能夠將字典轉換為排序列表沒問題。 我的問題是從鍵和相應的值中創建一個元組,然后將其傳遞到一個排序列表中。
我曾嘗試將字典轉換為排序列表(技術上可行,但元組似乎是列表中的一個單獨實體)。
然后我嘗試將鍵和所有值分開,並用 for 語句將它們重新縫合在一起,但我已經花了足夠的時間在這上面,因為我只是被阻塞了,不明白為什么它不會通過通過。
以下是我嘗試創建的兩個函數:
#function #1
def sort_contacts(diction):
my_key_list = list(diction.keys())
my_val_list = list(diction.values())
for x in range(0,len(my_key_list)):
for k in my_key_list:
for x,v in my_val_list:
new_val=(k, x, v)
new_list=[new_val]
return(new_list)
#function #2
def sort_contacts(diction):
sorta = [(k,v) for k,v in diction.items()]
sorta = list(sorta)
sorta.sorta
#sortc = sortb.split()
return sorta
對於功能#1,測試失敗。
預期的:
[('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')]
但得到:
[('Freud, Anna', '1-541-754-3010', 'anna@psychoanalysis.com')]
對於功能#2,測試失敗。
預期的:
[('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')]
但得到:
[('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(diction):
sorta = [(k, v[0], v[1]) for k,v in diction.items()]
# sort it somehow?
return sorta
@Akaisteph7 謝謝你的回答有效。 我通過 sorta.sort() 對它進行排序,然后一切都正確通過了。
這是最終的代碼:
def sort_contacts(diction):
sorta = [(k, v[0], v[1]) for k,v in diction.items()]
sorta.sort()
return sorta
謝謝大家!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.