alg*_*thm 1 python dictionary list
目前我有两本词典
dictionary1 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
dictionary2 = {'value1': 'AAA', 'value3': 'CCC'}
Run Code Online (Sandbox Code Playgroud)
我想用上面的例子中dictionary1的值替换值,以dictionary2产生以下输出
{'key1': 'AAA', 'key2': 'value2', 'key3': 'CCC'}
Run Code Online (Sandbox Code Playgroud)
从其他示例我已经读过,我认为我应该开始我的代码如下:
for key, value in dictionary1.iteritems():
if value ==
Run Code Online (Sandbox Code Playgroud)
现在我不确定循环浏览其他字典的最佳方法,以查找来自dictionary1的值是否与来自dictionary2的键匹配.
你可以用字典理解来完成这个,就像这样
>>> 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'}
Run Code Online (Sandbox Code Playgroud)
在这里,dict2.get(v, v)将努力让对应值的值v从dict2.如果未找到,则返回默认值(第二个参数)v本身.
注1:您所涉及的内容称为词典,而不是列表.
注意2:如果您使用的是Python 2.7,那么您可能想要使用dict1.iteritems或dict1.viewitems代替dict1.items.在这个答案中,用精巧的例子解释了原因.
如果不存在,则在第二个列表中进行交叉查找,并回退到默认值.
>>> {key : list2.get(value, value) for key, value in list1.items()}
{'key3': 'CCC', 'key2': 'value2', 'key1': 'AAA'}
Run Code Online (Sandbox Code Playgroud)
get(key [,default])允许您在字典中查找键,如果该值不存在,则返回默认值.默认值应与您在第二个字典中搜索的值相同.
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |