gpt4 book ai didi

python 对对象进行深层排序

转载 作者:行者123 更新时间:2023-12-01 04:40:00 24 4
gpt4 key购买 nike

我需要一些关于 python 排序的帮助。我有一个数据对象,在这个对象中是列表,我喜欢对特定列表项的数据进行排序。目前我像这样打印出来:

 for item in data:
for proj in item:
print proj.get('id')

所以我希望这些数据已经按“id”项排序。

如果我打印它,这就是数据对象的样子:

[[{u'archived': False, u'name': u'someone', u'num_files': 0, u'managed_by': {u'username': u'somebody', u'role': u'somerole', u'email_address': u'me@somewhere', u'id': u'307', u'name': u'firstname lastname'}, u'updated_on': u'2015-06-18 17:55:39', u'id': 23}, 
{u'archived': False, u'name': u'someoneelse', u'num_files': 0, u'managed_by': {u'username': u'somebody else', u'role': u'somerole', u'email_address': u'you@somewhere', u'id': u'341', u'name': u'Firstname Lastname'}, u'updated_on': u'2015-06-09 17:38:52', u'id': 48}]]

整个列表中只有两个列表,但我喜欢对最后一个 id 进行排序,在本例中为 23 和 48

最佳答案

试试这个:

import numpy as np
data_new = np.array(data).flatten()
sorted_list = sorted(data_new, key=lambda x: x['id'])

第一行将创建一个字典列表。第二个将按“id”键对它们进行排序。之后你就可以按照你想要的方式打印它:

for i in sorted_list:
print(i['id'])

编辑:因为您的列表可能包含不同大小的子列表(例如 here ),这将破坏 ndarray.flatten 或 numpy.ravel,也因为您的元素是字典 np.fromiter 也将无法工作。所以你应该将第二行更改为:

data_new = np.hstack(data)

关于python 对对象进行深层排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com