At the moment I have two dictionaries
dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}
I want to replace the values of dictionary1 with the values from dictionary2 which with the example above would produce the following output
{'key1': 'AAA', 'key2': 'value2', 'key3': 'CCC'}
From other examples I have read I think that I should begin my code as follows:
for key, value in dictionary1.iteritems():
if value ==
Now I am unsure as to the best method to cycle through the other dictionary to find if the value from dictionary1 matches a key from dictionary2.
解决方案
You can do this with dictionary comprehension, like this
>>> dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
>>> dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}
>>> {k: dictionary2.get(v, v) for k, v in dictionary1.items()}
{'key3': 'CCC', 'key2': 'value2', 'key1': 'AAA'}
Here, dict2.get(v, v) will try to get the value corresponding to the value v from dict2. If it is not found, the default value (second parameter), v itself will be returned.
Note 1: What you have in question, are called dictionaries, not lists.
Note 2: If you are using Python 2.7, then you might want to use dict1.iteritems or dict1.viewitems instead of dict1.items. The reason is explained, elaborately, with examples, in this answer.