为了账号安全,请及时绑定邮箱和手机立即绑定

python3 连接 python 字典的函数不起作用

python3 连接 python 字典的函数不起作用

慕哥9229398 2021-06-06 09:41:05
我不断得到一本空字典#!/usr/local/bin/python3dic1={1:10, 2:20}dic2={3:30, 4:40}dic3={5:50,6:60}dictNew = {}def concatDict(dictCon):    dictNew = dict.update(dictCon)    return dictNewconcatDict(dic1)concatDict(dic2)concatDict(dic3)print(dictNew)dictNew 没有从函数调用中得到更新。有人可以指出我正确的方向吗?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

要加入字典,您只需使用以下代码:


dict1 = {1: 10, 2: 20}

dict2 = {3: 30, 4: 40}

dict3 = {5: 50, 6: 60}

dict_new = {**dic1, **dic2, **dic3}

print(dict_new)

结果:


{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}


查看完整回答
反对 回复 2021-06-09
?
HUH函数

TA贡献1836条经验 获得超4个赞

您可以让您的concatDicts函数接受可变数量的字典作为输入并返回一个新的合并字典


>>> dic1 = {1:10, 2:20}

>>> dic2 = {3:30, 4:40}

>>> dic3 = {5:50, 6:60}

>>>

>>> def concatDicts(*dicts):

...     return dict((k,v) for dic in dicts for k,v in dic.items())

... 

>>>

>>> new_dic = concatDicts(dic1, dic2, dic3)

>>> print(new_dic)

{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}


查看完整回答
反对 回复 2021-06-09
?
白板的微信

TA贡献1883条经验 获得超3个赞

您想dictNew使用dictCon字典参数进行更新。由于字典是可变的,因此您不需要保存或返回dictNew将被改变的结果:


#!/usr/local/bin/python3


dic1={1:10, 2:20}

dic2={3:30, 4:40}

dic3={5:50,6:60}

dictNew = {}


def concatDict(dictCon):

    dictNew.update(dictCon)


concatDict(dic1)

concatDict(dic2)

concatDict(dic3)


print(dictNew)

这使:


{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}

但是请注意,您的函数实际上只是 masking dictNew.update,因此您最好使用该方法调用而不是此包装函数:


...

dictNew.update(dic1)

dictNew.update(dic2)

dictNew.update(dic3)

...

另一种方法是使用**-operator 来分解字典:


{**dic1, **dic2, **dic3}


查看完整回答
反对 回复 2021-06-09
  • 3 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信