web-dev-qa-db-ja.com

Python list / dictionary?

OK、渡されたリスト/辞書をフィルタリングし、それを少し「クリーン」にしようとしています。その中には、取り除く必要がある特定の値があります。

したがって、次のように見える場合:

"records": [{"key1": "AAA", "key2": "BBB", "key3": "CCC", "key4": "AAA"...}]

すべてをすばやく簡単に実行し、「AAA」のすべての値を「XXX」のようなものに置き換えるにはどうすればよいですか?

これらは長いリストである可能性があり、このプロセスに時間がかかりすぎないように、速度とリソースに焦点を当てています。

21
Crazy Serb
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'}]}
28
RichieHindle
dic = root['records'][0]
for i, j in dic.items():       # use iteritems in py2k
    if j == 'AAA':
        dic[i] = 'xxx'
10
SilentGhost