繁体   English   中英

如何仅更改字典列表中的最后一个重复值?

[英]How to change only the last repeated value from a list of dictionaries?

基本上,我只想更改来自 'Flag' 键的最后一个键 'name' 重复值,其中 key1 和 key2 在上面的两个循环中定义。

我正在尝试做的是以下(但我找不到一种有效的方法来做到这一点):

       for i in range(len(messages)):
           if messages[i]['name'] == data[key1]:
               messages[i]['Flag']=2
           elif messages[i]['name'] == data[key2]:
               messages[i]['Flag']=2

如果您只想更改符合约束的最后一个 dict 则向后循环遍历它,并在第一次出现时更改 dict 并跳出循环

for i in range(len(messages), 0, -1):
       if messages[i]['name'] in (data[key1], data[key2]):
           messages[i]['Flag'] = 2
           break

从发布的代码中,我假设消息是一个字典列表。

key_list = [data[key1], data[key2]]
for msg in messages:
   if msg['name'] in key_kist:
      msg['Flag'] = 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM