[英]sorting dict of dicts based on particular values
我確實有一個字典; 這需要以 FAIL 組首先出現在字典中然后通過的方式進行排序(即使存在一個“失敗”條件,它們也應該組合在一起)。
如果我要按我想要的值的字母順序排序,要添加更多詳細信息
sorted_d1=collections.OrderedDict(d1.items(),lambda x:x[1])
但是如果我要在值中找到“FAIL”字符串並將它們分組,我該怎么做? 請對此提供幫助
d1 =
{
'test1':{'condition1':'PASS','condition2':'FAIL','condition3':'-'},
'test2':{'condition1':'PASS','condition2':'PASS','condition3':'-'},
'test3':{'condition1':'-' ,'condition2':'PASS','condition3':'-'},
'test4':{'condition1':'PASS','condition2':'-' ,'condition3':'-'},
'test5':{'condition1':'-' ,'condition2':'FAIL','condition3':'-'},
'test6':{'condition1':'FAIL','condition2':'PASS','condition3':'-'},
'test7':{'condition1':'FAIL','condition2':'-' ,'condition3':'-'}
}
sorted_d1 =
{
'test1':{'condition1':'PASS','condition2':'**FAIL**','condition3':'-'},
'test5':{'condition1':'-' ,'condition2':'**FAIL**','condition3':'-'},
'test6':{'condition1':'**FAIL**','condition2':'PASS','condition3':'-'},
'test7':{'condition1':'**FAIL**','condition2':'-' ,'condition3':'-'},
'test2':{'condition1':'PASS','condition2':'PASS','condition3':'-'},
'test3':{'condition1':'-' ,'condition2':'PASS','condition3':'-'},
'test4':{'condition1':'PASS','condition2':'-' ,'condition3':'-'}
}
我不是訂購 dicts 的忠實粉絲,所以這里有一個鍵列表:
result = []
for key, my_dict in d1.items():
if 'FAIL' in my_dict.values():
result.insert(0, key)
else:
result.append(key)
print(result)
包含 'FAIL' 的鍵首先出現。 除此之外,沒有特別的順序。 如果您需要區分“失敗”和“失敗”並保持原始順序(我假設這是由鍵表示的),您可以制作兩個列表,一個帶有“失敗”,一個沒有,只需對它們進行排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.