8

辞書内の複数のキーの値をタプルに格納されている値に更新する最もクリーンな方法は何ですか?

例:

から行きたい

>>>mydict = {'a':None, 'b':None, 'c':None, 'd':None}
>>>mytuple = ('alpha', 'beta', 'delta')

>>>print mydict
{'a':'alpha', 'b':'beta', 'c':None, 'd':'delta'}

これには簡単なワンライナーがありますか? このようなものは、私が望むものに近づいているようです。

編集:最初の文字に基づいてキーに値を割り当てたくありません。私はただのようなものを望んでいます

mydict('a','b','d') = mytuple

明らかにそれはうまくいきませんが、私はそれに似たものを望んでいます。

4

4 に答える 4

0

リスト内包表記を使用してワンライナーにすることもできますが、非常に効率的ではありません。

keys = [ 'a', 'b', 'c', 'd']
values = ['alpha', 'beta', 'delta']
dictionary = dict([(k,v) for k in keys for v in values if v.startswith(k)])
print dictionary #prints {'a': 'alpha', 'b': 'beta', 'd': 'delta'}
于 2013-10-11T23:24:36.480 に答える