簡體   English   中英

將字典轉換為元組排序列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM