我有两个字典,称为dict_values
和dict_names={'Dunk_g09_c03' : [Dunk_g09_c03_0159,Dunk_g09_c03_005,Dunk_g09_c03_0149,...,Dunk_g09_c03_0001],
'Bulk_g08_c07' : [Bulk_g08_c07_0256,Bulk_g08_c07_0800,...,Bulk_g08_c07_0015]}
dict_values={'Dunk_g09_c03' : [[0.45, 078,...,016],[0.48,0.12,...,0.89],...,[0.12, 0.59,...,0.23]],
'Bulk_g08_c07' : [[0.0.1,0.17,...,0.89],[0.23,0.47,...,0.45],...,[0.12,0.15,...,0.12]]}
,由大约20,000个键组成。
这是字典的两个要素:
_
我希望按照dict_names值中最后一个'Dunk_g09_c03' : [Dunk_g09_c03_0159,Dunk_g09_c03_005,Dunk_g09_c03_0149,...,Dunk_g09_c03_0001]
之后的值按升序对字典重新排序。例如:
{{1}}
成为:
'Dunk_g09_c03':[Dunk_g09_c03_ 0001 ,Dunk_g09_c03_ 0002 ,Dunk_g09_c03_ 0003 ,...,Dunk_g09_c03_ 最后
和
尊重 dict_names 中的新订单重新排序dict_values
答案 0 :(得分:1)
我们需要为每个键(假设d.keys()
相同),按位置配对元素,对这些元素进行排序,然后将原始值替换为已排序的对应元素。
def key_func(pair):
return int(pair[0].split('_')[-1])
for k, names in dict_names.items():
sorted_pairs = sorted(zip(names, dict_values[k]), key=key_func)
dict_names[k], dict_values[k] = zip(*sorted_pairs)