Python Function-Dictionary作為輸入-返回錯誤-有趣的行為

你好,燦爛的棧溢社區。當作為字典輸入時,我注意到一個關于Python函數的有趣行為。

當我們使用空列表作為默認參數時,可以在附加一些值的同時返回該列表。

def func_list(value,input=[]):
    return input.append(value)

當使用空字典作為參數時,我希望應用相同的方法。例如:

def func_dict(value,input={}):
    return input[value] = value

但是,Python將引發語法錯誤,我只能執行以下操作:

def func_dict(value,input={}):
    input[value] = value
    return input

我想知道為什么?非常感謝你!

請隨意修改問題,如果我對問題的表達不夠清楚,請道歉!

? 最佳回答:

關鍵的區別在于input.append(value)是一個表達式,input[value] = value不是(它只是一個語句)。return語句只能將表達式作為參數(或者沒有參數返回None)。

您可以這樣做:

def func_dict(value,input={}):
    return input.update({ value: value }) or input

其工作原理是dict.update()返回None,因此我們返回(現在更新的)input。我知道這很難看,但想不出更好的了。

主站蜘蛛池模板: 精品无码成人片一区二区98| 视频一区二区在线观看| 久久AAAA片一区二区| 亚洲一区二区三区91| 国产伦精品一区二区三区不卡| 亚洲一区二区三区免费观看| 精品一区二区三区在线观看| 国产亚洲福利一区二区免费看 | 香蕉免费看一区二区三区| 国产日韩一区二区三区在线播放| 精品一区二区三区自拍图片区| 亚洲无圣光一区二区| 久久精品一区二区三区四区| 一区精品麻豆入口| 国产aⅴ精品一区二区三区久久| 一区二区网站在线观看| 无码毛片一区二区三区中文字幕| 国产在线精品一区免费香蕉| 麻豆一区二区三区蜜桃免费| 国产天堂在线一区二区三区| 国产一区中文字幕在线观看| 国产一区二区三区小向美奈子 | 红杏亚洲影院一区二区三区| 激情啪啪精品一区二区| 亚洲国产激情一区二区三区| 视频一区二区在线观看| 久久精品中文字幕一区| 日韩一区二区在线观看视频 | 香蕉免费一区二区三区| 久久精品国产一区二区三| 亚洲不卡av不卡一区二区| 亚洲AV无码一区二区大桥未久| 国产中的精品一区的| 精品中文字幕一区二区三区四区| 日本不卡一区二区视频a| 无码一区18禁3D| 国产91精品一区| 国产日韩一区二区三区在线观看| 海角国精产品一区一区三区糖心 | 亚洲综合无码一区二区痴汉| 欧美日本精品一区二区三区|