Python里面列表的排序列表

时间:2018-02-27 11:50:40

标签: python list sorting dictionary

我有以下列表结构:

[
    {'key1': 'value1', 
     'key2': [['mike', 'simmons', '54:17:47']], 
     'key3': 19390},
    {'key1': 'value1', 
     'key2': [['snart', 'simmons', '60:12:47']], 
     'key3': 19390}
]

我想用key2键的第二个索引(我的意思是那些60:12:47的数字)对这个列表进行排序

我还没有找到一种标准的做法..

谢谢!

2 个答案:

答案 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])