按财产顺序重复列出所有的字典
这个问题在这里已经有了答案:
是的,二者都可以通过函数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