我有以下列表结构:
[
{'key1': 'value1',
'key2': [['mike', 'simmons', '54:17:47']],
'key3': 19390},
{'key1': 'value1',
'key2': [['snart', 'simmons', '60:12:47']],
'key3': 19390}
]
我想用key2键的第二个索引(我的意思是那些60:12:47的数字)对这个列表进行排序
我还没有找到一种标准的做法..
谢谢!
答案 0 :(得分:6)
这是一种方法,假设您希望将值排序为字符串。
lst = [{'key1': 'value1', 'key2': [['snart', 'simmons', '60:12:47']], 'key3': 19390},
{'key1': 'value1', 'key2': [['mike', 'simmons', '54:17:47']], 'key3': 19390}]
res = sorted(lst, key=lambda x: x['key2'][0][2])
# [{'key1': 'value1', 'key2': [['mike', 'simmons', '54:17:47']], 'key3': 19390},
# {'key1': 'value1', 'key2': [['snart', 'simmons', '60:12:47']], 'key3': 19390}]
答案 1 :(得分:2)
将sorted
与使用该值的比较器一起使用:
sorted_list = sorted(my_list, key=lambda d: d['key2'][0][2])