I have 3 list that i would like to put into a dictionary:
list1=['a','b','c']
list2=[1,2,3]
list3=[0.5,0.3,0.1]
传统上我可以用list1,list2
创建这样的字典my_dict = dict(zip(list1, list2))
#sort on list 2 descending
sorted_my_dict = sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)
我想打印一下:c:[3,0.1],b:[2,0.3],a:[1,0.5]
这不起作用:
my_dict=dict(list1,zip(list2, list3))
答案 0 :(得分:4)
您需要再添加一个zip,因为dict
构造函数接受tuple
s的列表,但不接受两个list
s:
my_dict_3 = dict(zip(list1, zip(list2, list3)))
另请注意,Python中的dict
未排序,此代码sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)
会返回tuple
s的列表,而不是已排序 dict
。
要对my_dict_3
进行排序,您可以使用以下代码:
sorted_my_dict_3_items = sorted(my_dict_3.items(), key=lambda item: item[1][0], reverse=True)
sorted_my_dict_3 = OrderedDict(sorted_items)