Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为python字典中的键赋值_Python - Fatal编程技术网

为python字典中的键赋值

为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

因为我想向字典键追加一个新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.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语法。