为python字典中的键赋值
因为我想向字典键追加一个新ID,所以我基于旧字典键和新项创建了一个新字典。但是现在,我想为新字典的每个键分配一个列表值 所以,我写了这段代码:为python字典中的键赋值,python,Python,因为我想向字典键追加一个新ID,所以我基于旧字典键和新项创建了一个新字典。但是现在,我想为新字典的每个键分配一个列表值 所以,我写了这段代码: old_dict={22:[99,4['Dog','Dog.1']],14:[99,8['Dog2','Dog.3']],23:[97,8['Cat2','Dog.3']] 新条例草案{22 | 14:[99,4['Dog','Dog.1']],14 | 25:[99,8['Dog2','Dog.3']],23 | 5:[97,8['Cat2','Dog
old_dict={22:[99,4['Dog','Dog.1']],14:[99,8['Dog2','Dog.3']],23:[97,8['Cat2','Dog.3']]
新条例草案{22 | 14:[99,4['Dog','Dog.1']],14 | 25:[99,8['Dog2','Dog.3']],23 | 5:[97,8['Cat2','Dog.3']]
列表=[99,4['Dog','Dog.1'],[99,8['Dog2','Dog.3'],[97,8['Cat2','Dog.3']]
新的_dict2={}
对于列表中的值:
对于旧的、新的zip格式(旧字典.keys()、新字典.values()):
new_ID=old+“|”+new
new_dict2[new_ID]=值
但是,这是在新字典的所有键中重复列表的第一个值
请问,如何更正此错误?22 | 14是按位OR函数。你可能希望你的leys是文本。所以请用引号“22 | 14” 您的解决方案是拆分键和值,然后重新组合它们。应该是这样的:
keys1, values1 = dict1.items()
keys2, values2 = dict2.items()
new_keys = [str(a)+'|'+str(b) in zip (keys1, keys2)]
new_dict = {k:v for k, v in zip (new_keys, some_new values)}
我这样解决了我的问题:
final_all={}
for old_k,new_k in zip(old_dictionary.keys(),new_dictionary.keys()):
new_ID=str(old_k) + '|' + str(new_k )
final_all[new_ID]=list_values
感谢您的帮助您是否也要
压缩列表中的值
,即压缩中的旧值、新值(final_dict.keys()、final_results_2.values()、list):
?不,您是否应该这样做?Sofia,请您提供列表数据示例,旧的dict和新的dict是否具有理想的行为?@kirillFedyanin我编辑了这个问题,以提供字典和列表的示例。您的示例dict和列表不是有效的Python语法。