假设一个Python字典,其中键是字符串,相应的值是整数列表。
> my_dict = {}
> my_dict['key1'] = [1,2,3]
> my_dict['key2'] = [4,5]
> my_dict['key3'] = [3,4,5]
> my_dict
# Python dictionaries are unordered by default
{'key2': [4, 5], 'key3': [3, 4, 5], 'key1': [1, 2, 3]}
您将编写什么函数来获取按每个值的第一个元素(即每个列表的第一个元素)排序的类字典对象。
> from collections import OrderedDict
> def my_function(a_dict):
> return OrderedDict(sorted(a_dict.items(), magic_specified_here)) # Just an example
> sorted_dict = my_function(my_dict)
> sorted_dict
{'key1': [1, 2, 3], 'key3': [3, 4, 5], 'key2': [4, 5]}
答案 0 :(得分:2)
您可以使用以下内容:
return OrderedDict(sorted(a_dict.items(), key=lambda x: x[1][0]))
这将根据其值的第0个元素对a_dict
中的项进行排序。由于a_dict.items()
会返回(key, value)
对的元组,x[1]
表示value
。
答案 1 :(得分:0)
您可以使用key
参数sorted(my_dict.items(), key=lambda x:x[1][0])
>>> my_dict = {}
>>> my_dict['key1'] = [1,2,3]
>>> my_dict['key2'] = [4,5]
>>> my_dict['key3'] = [3,4,5]
>>> my_dict
{'key3': [3, 4, 5], 'key2': [4, 5], 'key1': [1, 2, 3]}
>>> my_dict.items()
dict_items([('key3', [3, 4, 5]), ('key2', [4, 5]), ('key1', [1, 2, 3])])
>>> sorted(my_dict.items(), key=lambda x:x[1][0])
[('key1', [1, 2, 3]), ('key3', [3, 4, 5]), ('key2', [4, 5])]
>>>
答案 2 :(得分:0)
非常简单:
def my_function(a_dict):
return OrderedDict(sorted(a_dict.items(), key=lambda x: x[1][0]))