按财产顺序重复列出所有的字典

这个问题在这里已经有了答案:

  • 如何根据Python中字典的值对字典列表进行排序? 17个答案

  • 是的,二者都可以通过函数sorted()的“key”关键字参数来实现。 看看片段:

    >>> l = [1, 3, 2]
    >>> sorted(l)
    [1, 2, 3]
    >>> sorted(l, key=lambda x: x**2)
    [1, 2, 3]
    >>> sorted(l, key=lambda x: -x)
    [3, 2, 1]
    

    您可以将可调用对象作为“key”关键字参数传递给sorted(),可调用对象将用于提供排序关键字。 对于你的第一个问题,你可以将事务包装在排序中,并将lambda x:x ['date]作为“key”。 对于只需将“key”更改为lambda x:x.date之类的对象即可。


    找到了! 从这个答案:

    for t in sorted(transactions, key=lambda k: k['date']):
        balance += t['amount']
        t['balance'] = balance
    

    有趣的是,搜索没有导致这个答案,但发布后它出现在侧边栏的顶部!


    小心,你的循环中有一个错字(transactsion)

    transactions.sort(key=lambda x:x['date'])
    for t in transactions:
        balance += t['amount']
        t['balance'] = balance
    

    这应该做的伎俩,这样你的列表仍然排序

    链接地址: http://www.djcxy.com/p/70773.html

    上一篇: Iterate over list of dicts in order of property

    下一篇: How to sort a list of dictionaries of dictionaries by value