簡體   English   中英

在不知道鍵/值的情況下對字典列表進行排序

[英]Sort a list of dictionaries without knowing the keys/values

我的代碼中的函數 ( F1 ) 返回字典列表。 我需要對這個字典列表進行排序並打印出來。 我們是升序還是降序對列表進行排序並不重要,只要它們是一致的。 問題是, F1每次都可能返回完全不同的字典列表:長度、鍵、值,一切都可能不同,而我無法提前知道。

我如何安全且一致地對這樣的列表進行排序? 我有這個:

sorted_list = sorted(list_to_be_sorted, key=lambda k: k['name'])

但它在我的情況下不起作用,因為我可能有一個不包含“名稱”的列表。

一種解決方案是使用dict.get 如果字典中不存在鍵,則返回None (或其他默認值,如果需要):

sorted_list = sorted(list_to_be_sorted, key=lambda k: k.get('name'))

假設所有鍵都相同,這可能是您需要的:

list_to_be_sorted = [{"name": 3}, {"name": 2}, {"name": 4}, {"name": 1}]
sorted_list = sorted(list_to_be_sorted, key=lambda k: k[[*k][0]])

輸出:

[{'name': 1}, {'name': 2}, {'name': 3}, {'name': 4}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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