我认为这很简单。我所要做的就是用另一个具有该值的字典的'code'
更新原始字典的'code'
。我有一种感觉2循环和如果循环可以进一步缩短得到答案。在我的实际问题中,我有1000条字典需要更新。谢谢你们!你知道吗
Python:
referencedict = {'A': 'abc', 'B': 'xyz'}
mylistofdict = [{'name': 'John', 'code': 'A', 'age': 28}, {'name': 'Mary', 'code': 'B', 'age': 32}, {'name': 'Joe', 'code': 'A', 'age': 43}]
for eachdict in mylistofdict:
for key, value in eachdict.items():
if key == 'code':
eachdict[key] = referencedict[value]
print mylistofdict
输出:
[{'age': 28, 'code': 'abc', 'name': 'John'}, {'age': 32, 'code': 'xyz', 'name': 'Mary'}, {'age': 43, 'code': 'abc', 'name': 'Joe'}]
无需循环
eachdict
的所有值,只需直接查找code
:您可能会因为
code
的存在而忽略测试,您的示例列表总是包含一个code
条目,但我认为最好是安全的。在referencedict结构中查找代码假定所有可能的代码都可用。你知道吗我在这里使用了
if 'code' not in eachdict: continue
;相反的也是同样有效的(if 'code' in eachdict
),但是这种方法可以更容易地删除不需要的行,并且可以为自己节省一个缩进级别。你知道吗相关问题 更多 >
编程相关推荐