Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to update dictionary from a tuple (or list of 2)

I thought it would be possible to update an existing dictionary as follows:

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

However I get this error:

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

I looked at some other StackOverflow questions/answers on this topic, which made me think this was possible. I must be missing something basic...

like image 604
Sam Goldberg Avatar asked Feb 20 '23 16:02

Sam Goldberg


1 Answers

The error message already gives you a hint: Each item in the sequence you pass must have a length of 2, meaning it has to consist of a key and a value.

Therefore you have to pass a tuple (list, sequence,...) of 2-tuples (-lists, -sequences,...):

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

Alternatively you could do:

key, value = nameValuePair.split('=')
d[key] = value
like image 184
Felix Kling Avatar answered Apr 07 '23 23:04

Felix Kling