如何倒序遍历字典列表,直到找到特定的键值?
我有一个字典里面又包含字典:
for i in results[2]:
print i
Recurring: {'p_pnref': 'E78P2DFEA7E3', 'p_result': '12'}
Recurring: {'p_pnref': 'E78P2E93B933', 'p_result': '0'}
Recurring: {'p_pnref': 'E35P0A5578D3', 'p_result': '12'}
Recurring: {'p_pnref': 'E24P0AA506C3', 'p_result': '24'}
Recurring: {'p_pnref': 'E25P0AFF2C43', 'p_result': '24'}
Recurring: {'p_pnref': 'E34P0B4909A3', 'p_result': '24'}
我对 p_result
的值很感兴趣。我可以很简单地用 list(results[2])[-1].p_result
来获取最后一条记录,但我想做的是,从列表的后面开始循环,直到找到一条记录,其中 p_result == 0
。在这个例子中,就是第二行(p_pnref == E78P2E93B933
)。
我该怎么做呢?如果我能用负数索引来遍历,我想我就能搞定其他的部分,但我不太确定该怎么做。
假设这些是定期付款,而 0 == 成功的付款
,我想获取“最近的一笔成功交易”。
2 个回答
0
可能你想要的是:
for i in reversed(results[2]):
if i["p_result"] == "0":
do_stuff(i)
4
我觉得你要找的就是 reversed
这个东西:
records = [
{'p_pnref': 'E78P2DFEA7E3', 'p_result': '12'},
{'p_pnref': 'E78P2E93B933', 'p_result': '0'},
{'p_pnref': 'E35P0A5578D3', 'p_result': '12'},
{'p_pnref': 'E24P0AA506C3', 'p_result': '24'},
{'p_pnref': 'E25P0AFF2C43', 'p_result': '24'},
{'p_pnref': 'E34P0B4909A3', 'p_result': '24'},
]
for record in reversed(records):
if record['p_result'] == '0':
print record['p_pnref']
break