I have only a single key-value pair in dictionary. I want to assign key to one variable and it's value to another variable. I have tried with below ways but I am getting error for same.
>>> d ={"a":1}
>>> d.items()
[('a', 1)]
>>> (k,v) = d.items()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
>>> (k, v) = list(d.items())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
I know that we can extract key and value one by one, or by for loop and iteritems(), but isn't there a simple way such that we can assign both in single statement?
This is best if you have many items in the dictionary, since it doesn't actually create a list but yields just one key-value pair.
Of course, if you have more than one item in the dictionary, there's no way to know which one you'll get out.
Or using
next
,iter
:items()
returns a list of tuples so:you can do
d.keys() will actually return list of all keys and d.values return list of all values, since you have a single key:value pair in d you will be accessing the first element in list of keys and values
Add another level, with a tuple (just the comma):
or with a list:
or pick out the first element:
The first two have the added advantage that they throw an exception if your dictionary has more than one key, and both work on Python 3 while the latter would have to be spelled as
k, v = next(iter(d.items()))
to work.Demo:
You have a list. You must index the list in order to access the elements.