Замена значений в списке/словаре Python?
Хорошо, я пытаюсь отфильтровать список/словарь, переданный мне, и "очистить" его немного, так как в нем есть определенные значения, от которых мне нужно избавиться.
Итак, если это выглядит так:
"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"...}]
Как бы я быстро и легко выполнил все это и заменил все значения "AAA" на что-то вроде "XXX"?
Фокус находится на скорости и ресурсах, поскольку они могут быть длинными списками, и я не хочу, чтобы этот процесс потреблял слишком много времени.
Ответы
Ответ 1
DATA = {"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"}]}
for name, datalist in DATA.iteritems(): # Or items() in Python 3.x
for datadict in datalist:
for key, value in datadict.items():
if value == "AAA":
datadict[key] = "XXX"
print (DATA)
# Prints {'records': [{'key3': 'CCC', 'key2': 'BBB', 'key1': 'XXX', 'key4': 'XXX'}]}
Ответ 2
dic = root['records'][0]
for i, j in dic.items(): # use iteritems in py2k
if j == 'AAA':
dic[i] = 'xxx'