Python 把口述词改成另一个口述词
我需要将dict按值排序为另一个dict,如下所示Python 把口述词改成另一个口述词,python,dictionary,ordereddictionary,Python,Dictionary,Ordereddictionary,我需要将dict按值排序为另一个dict,如下所示 dict_filtro = {"Conector 1":{"alasca":30,"USA":10,"Brasil":20}, "Conector 4":{"alasca":60,"USA":60,"Brasil":10},
dict_filtro = {"Conector 1":{"alasca":30,"USA":10,"Brasil":20},
"Conector 4":{"alasca":60,"USA":60,"Brasil":10},
"Conector 3":{"alasca":70,"USA":15,"Brasil":24},
"Conector 2":{"alasca":10,"USA":19,"Brasil":6}}
dict_ordered = ordered_dict_by_value(dict_filtro,["alasca"])
print(dict_ordered)
>>{"Conector 2":{"alasca":**10**,"USA":19,"Brasil":6}},
"Conector 1":{"alasca":**30**,"USA":10,"Brasil":20},
"Conector 4":{"alasca":**60**,"USA":60,"Brasil":10},
"Conector 3":{"alasca":**70**,"USA":15,"Brasil":24}}
我已经在寻找很多解决方案,但从来都不适合我的问题。你可以通过熊猫来完成:
import pandas as pd
dict_filtro = {"Conector 1":{"alasca":30,"USA":10,"Brasil":20},
"Conector 4":{"alasca":60,"USA":60,"Brasil":10},
"Conector 3":{"alasca":70,"USA":15,"Brasil":24},
"Conector 2":{"alasca":10,"USA":19,"Brasil":6}}
df = pd.DataFrame(dict_filtro)
a = df.transpose()
b = a.sort_values(by='alasca')
c = b.transpose()
data_dict = c.to_dict()
print(data_dict)
python中的字典没有可以控制的顺序;它在引擎盖下实现的方式意味着它没有。如果你真的想用一本字典,它会有一个特别的版本,但正如Robby所说,这可能不是你最好的选择。如果我是你,我会尝试创建一个键列表,比如[“Conector 2”、“Conector 1”…],然后你可以在需要时使用字典查找与这些键相关的值。字典是从python版本3.6开始排序的。请参阅:@bitranox在3.6中,它只是一个CPython实现细节(而不是在3.6之前)。在3.7年,它正式成立。