1 回答

TA貢獻1982條經驗 獲得超2個贊
如果你想對與每個水果相關的排序list,你可以執行以下操作:
>>> mydict = {k : sorted(v, key=lambda x : int(x[0])) for k, v in mydict.items()}
>>> mydict
{'orange': [['1', '00:00:03,950'],
['9', '00:00:24,030'],
['11', '00:00:29,640']],
'cherry': [['20', '00:00:54,449']],
'apple': [['14', '00:00:38,629']],
'banana': [['2', '00:00:06,840'],
['3', '00:00:09,180'],
['4', '00:00:10,830']]}
這是迭代字典的鍵值對,并按每個值的int第一個元素對每個值的元素進行排序。
但要明確的是,從 Python 3.7 開始,法線dict是有序的。所以在這里,您會看到水果名稱的出現順序與它們創建時的順序相同 - 在早期的 Python 中,情況并非如此。
您還說您想要對鍵(水果名稱)進行排序,但看起來您想要對值(行號和時間戳)進行排序。如果您想對水果名稱進行額外排序,您可以撥打sorted電話來獲取項目:
>>> mydict = {k : sorted(v, key=lambda x : int(x[0])) for k, v in sorted(mydict.items())}
>>> mydict
{'apple': [['14', '00:00:38,629']],
'banana': [['2', '00:00:06,840'],
['3', '00:00:09,180'],
['4', '00:00:10,830']],
'cherry': [['20', '00:00:54,449']],
'orange': [['1', '00:00:03,950'],
['9', '00:00:24,030'],
['11', '00:00:29,640']]}
# now mydict's keys are in alphabetical order, and its values are also ordered by line number
添加回答
舉報