Accessing Elements from Dictionary Keys can be used either inside square brackets [] or with the get() method. If we use the square brackets [] , KeyError is raised in case a key is not found in the dictionary. On the other hand, the get() method returns None if the key is not found.
Dictionary values have no restrictions. They can be any arbitrary Python object, either standard objects or user- defined objects. However, same is not true for the keys.
Dictionaries can contain objects of arbitrary type, even other containers such as lists and nested dictionaries.
On Python 3, non-destructively and iteratively:
next(iter(mydict.values()))
On Python 2, non-destructively and iteratively:
mydict.itervalues().next()
If you want it to work in both Python 2 and 3, you can use the six
package:
six.next(six.itervalues(mydict))
though at this point it is quite cryptic and I'd rather prefer your code.
If you want to remove any item, do:
key, value = mydict.popitem()
Note that "first" may not be an appropriate term here because dict
is not an ordered type in Python < 3.6. Python 3.6+ dicts
are ordered.
If you only need to access one element (being the first by chance, since dicts do not guarantee ordering) you can simply do this in Python 2:
my_dict.keys()[0] -> key of "first" element
my_dict.values()[0] -> value of "first" element
my_dict.items()[0] -> (key, value) tuple of "first" element
Please note that (at best of my knowledge) Python does not guarantee that 2 successive calls to any of these methods will return list with the same ordering. This is not supported with Python3.
in Python 3:
list(my_dict.keys())[0] -> key of "first" element
list(my_dict.values())[0] -> value of "first" element
list(my_dict.items())[0] -> (key, value) tuple of "first" element
In python3, The way :
dict.keys()
return a value in type : dict_keys(), we'll got an error when got 1st member of keys of dict by this way:
dict.keys()[0]
TypeError: 'dict_keys' object does not support indexing
Finally, I convert dict.keys() to list @1st, and got 1st member by list splice method:
list(dict.keys())[0]
next(iter(mydict))
next(iter(mydict.values()))
next(iter(mydict.items())) # or next(iter(mydict.viewitems())) in python 2
The first two are Python 2 and 3. The last two are lazy in Python 3, but not in Python 2.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With