[英]How can I add a new pair key: value in a dictionary that has a condition?
I have the following dictionary:我有以下字典:
info_processos = {
'2019.491429': {"classe": "apelação", "dias_vista": 11},
'2020.714034': {"classe": "habeas corpus", "dias_vista": 8},
'2015.695102': {"classe": "agravo de instrumento", "dias_vista": 17},
'2012.628045': {"classe": "apelação", "dias_vista": 32},
'2017.462447': {"classe": "recurso em sentido estrito", "dias_vista": 9},
'2018.518281': {"classe": "apelação", "dias_vista": 4},
}
The keys are the protocols numbers ('2019.491429', '2020.714034', '2015.695102', etc.) while the values are a subdictionary which has 2 keys ('classe' and 'dias_vista').键是协议编号('2019.491429'、'2020.714034'、'2015.695102' 等),而值是具有 2 个键('classe' 和 'dias_vista')的子字典。
I want to create a new pair "prorrogado": "sim" for the keys which have the value from "dias_vista" equal or above 10 and for the others "prorrogado": "não".我想为“dias_vista”的值等于或大于 10 的键创建一对“prorrogado”:“sim”,为其他键创建“prorrogado”:“não”。
I have tried using this loop method:我试过使用这种循环方法:
for key, value in info_processos.items():
if info_processos(value["dias_vista"] >= 10):
info_processos.update({key: {"prorrogado": "Sim"}})
info_processos.update({key: {"prorrogado": "Não"}})
But it returned "TypeError: 'dict' object is not callable"
.但它返回了
"TypeError: 'dict' object is not callable"
。 How can I solve it?我该如何解决?
Just do:做就是了:
import pprint
info_processos = {
'2019.491429': {"classe": "apelação", "dias_vista": 11},
'2020.714034': {"classe": "habeas corpus", "dias_vista": 8},
'2015.695102': {"classe": "agravo de instrumento", "dias_vista": 17},
'2012.628045': {"classe": "apelação", "dias_vista": 32},
'2017.462447': {"classe": "recurso em sentido estrito", "dias_vista": 9},
'2018.518281': {"classe": "apelação", "dias_vista": 4},
}
for key, inner in info_processos.items():
inner["prorrogado"] = "Sim" if inner["dias_vista"] >= 10 else "Não"
pprint.pprint(info_processos)
Output Output
{'2012.628045': {'classe': 'apelação', 'dias_vista': 32, 'prorrogado': 'Sim'},
'2015.695102': {'classe': 'agravo de instrumento',
'dias_vista': 17,
'prorrogado': 'Sim'},
'2017.462447': {'classe': 'recurso em sentido estrito',
'dias_vista': 9,
'prorrogado': 'Não'},
'2018.518281': {'classe': 'apelação', 'dias_vista': 4, 'prorrogado': 'Não'},
'2019.491429': {'classe': 'apelação', 'dias_vista': 11, 'prorrogado': 'Sim'},
'2020.714034': {'classe': 'habeas corpus',
'dias_vista': 8,
'prorrogado': 'Não'}}
The use of update
is preferred for multiple keys or another dictionary.对于多个键或另一个字典,首选使用
update
。
You should update value
and not info_processos
:您应该更新
value
而不是info_processos
:
for key, value in info_processos.items():
if value["dias_vista"] >= 10:
value.update({"prorrogado": "Sim"})
else:
value.update({"prorrogado": "Não"})
I guess this is what you are looking for:我想这就是您要找的东西:
for key, value in info_processos.items():
if value["dias_vista"] >= 10:
info_processos[key].update({"prorrogado": "Sim"})
else:
info_processos[key].update({"prorrogado": "Não"})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.