Python 从第二个字典更新字典键和值
协助从原始数据dict更新工作数据dict。如果工作数据中已存在密钥,则更新值。如果不是,则创建新的键和值Python 从第二个字典更新字典键和值,python,loops,dictionary,Python,Loops,Dictionary,协助从原始数据dict更新工作数据dict。如果工作数据中已存在密钥,则更新值。如果不是,则创建新的键和值 working_data = {newkey1 : '', newkey2 : '' , newkey3: '', newkey4: ''} raw_data = {raw1: 'var1', raw2: 'var2', raw3: 'var3', raw4: 'var4} 如果要替换或添加工作数据: for k, v in {k.replace('raw','newkey'): v
working_data = {newkey1 : '', newkey2 : '' , newkey3: '', newkey4: ''}
raw_data = {raw1: 'var1', raw2: 'var2', raw3: 'var3', raw4: 'var4}
如果要替换或添加工作数据:
for k, v in {k.replace('raw','newkey'): v for k,v in raw_data.items()}.items():
working_data[k] = v
for k, v in {k.replace('raw','newkey'): v for k,v in raw_data.items()}.items():
if k in working_data:
working_data[k] = v
如果您只想更新数字(例如,如果raw\u data
中有raw5
,而working\u data
中没有newkey5
,并且您不想将newkey5
添加到working\u data
:
for k, v in {k.replace('raw','newkey'): v for k,v in raw_data.items()}.items():
working_data[k] = v
for k, v in {k.replace('raw','newkey'): v for k,v in raw_data.items()}.items():
if k in working_data:
working_data[k] = v
键看起来像是变量名。这会立即向您提出如何插入这些值的问题。您不能将变量名用作键。使用类似于
working[new1]
的内容对字典进行索引将使working
看起来像{new1的值:'var1'}因此,如果new1='mystring'
,您将拥有{'mystring':'var1'}
。我假设您希望保留这些变量的名称,因此您必须想出一种序列化变量名称的方法,可能是通过硬编码另一个字典,其中包含键值映射,该映射将每个newX
映射为它的字符串表示形式。以下是仅包含所需值的方法
result = {k: v for k, v in working_data.items() if v!= ''}
如何在原始数据
和工作数据
之间建立关联?是尾随数字吗?谢谢!这样就行了。你能帮我添加一个if语句吗?原始数据
有时最多可以有30项,但我只想在工作数据
中显示静态的15项。如何只写入拔出你想要的钥匙,然后扔掉剩下的?这有意义吗?@Mark M。这个回答有用吗?如果有,你能给我投票吗?我是新来的,这会对我有很大帮助。谢谢!