gpt4 book ai didi

Python:字典中的元素顺序

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:57 26 4
gpt4 key购买 nike

这是我的 Django 代码,它没有按预期工作:

posts = Post.objects.all().order_by('-added')[:20] # ordered by 'added'
post_list = dict([(obj.id, obj) for obj in posts])

# ... some operations with dictionary elements go here ...

posts_to_return = [post for post_id, post in post_list.items()] # order by 'id' now!

有没有办法保持原始元素的顺序,这样帖子就会按 posts_to_return 中的 added 排序?

谢谢!

编辑:Python 2.6,Django 1.3

最佳答案

使用 SortedDict 而不是 dict(from django.utils.datastructures import SortedDict)

SortedDict 在它的 keyOrder 属性中维护它的顺序。因此,如果需要,您可以在不重建 dict 的情况下操纵顺序。例如,要反转 SortedDict 的顺序,只需使用 keyOrder.reverse()

post_list = SortedDict([(obj.id, obj) for obj in posts])
# reversing the post order in-place
post_list.keyOrder.reverse()

关于Python:字典中的元素顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792190/

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