4

次のように既存の辞書を更新できると思いました。

nameValuePair = 'myKey=myValue'
d.update(nameValuePair.split('='))

ただし、次のエラーが表示されます。

Traceback (most recent call last):
  File "<pyshell#98>", line 1, in <module>
    d2.update(item.split('='))
ValueError: dictionary update sequence element #0 has length 1; 2 is required

このトピックに関する他のいくつかの StackOverflow の質問/回答を調べたところ、これは可能だと思いました。私は基本的な何かが欠けているに違いない...

4

1 に答える 1

8

エラー メッセージはすでにヒントを示しています。渡すシーケンス内の各項目の長さは 2 である必要があります。つまり、キーと値で構成されている必要があります。

したがって、2 タプル (-lists、-sequences、...) のタプル (リスト、シーケンス、...) を渡す必要があります。

// the value passed will be ((myKey, myValue), )
d.update((nameValuePair.split('='), ))
//       ^                        ^ ^
// creates a tuple of 1 element

または、次のこともできます。

key, value = nameValuePair.split('=')
d[key] = value
于 2012-07-31T18:31:24.887 に答える