忍んでいる肉球の足跡

プログラムに関連することを雑多に扱います

pythonでdictをmergeしようとして悩んだ

正解
dict((x,y) for x, y in tuples)
dict((x,y) for x, y in [{1: 2}, {3: 4}, {5: 6}].iterateitems())
悩んだ理由

reduceで書けないかなと考えてしまったせい。

  • pythonのdict::updateは返り値を返さない仕様
  • pythonのlambdaが一行しか中身を書けない

だから下記のように冗長になってしまって、見た目がちょっとやだったんだよね。

def tmp(dict, x):
    dict.update(x)
    retrun dict
reduce(tmp,[{1: 2}, {3: 4}, {5: 6}], {})

まあ、そういう融通の効かないところが好かれる理由だとは思うのですけどね。