Solved- TypeError: Dict_Values Object does not Support Indexing

Python’s implementation of an associative array data structure is dictionaries. A dictionary is a collection of key-value pairs. Each key pair is represented by a key pair and its associated value.

A dictionary is defined by a list of key-value pairs enclosed in curly braces and separated by commas. Each key’s value is separated by a comma in column ‘:’.

A dictionary cannot be sorted solely for the purpose of obtaining a representation of the sorted dictionary. Dictionaries are orderless by definition, but other types, such as lists and tuples, are not. As a result, you require an ordered data type, which is a list—most likely a list of tuples.

Solution for Dict_values object does not support indexing

We can solve this type error by using lists.

Error: ‘dict_values’ object does not support indexing

The dict.values() function returns a view object, and view objects cannot be indexed. If we try to select elements from it using indexing, we will receive the following error.

TypeError: ‘dict_values’ object does not support indexing

Take a dictionary and fetch all the values of the dictionary and print the first index then we get this error.

Implementation:

# given dictionary
dictionary = {'this': 200, 'is': 100, 'BTechGeeks': 300}
# extracting the values
dictvalue = dictionary.values()
# printing the dictionary values
print(dictvalue)
print('now extracting the first index of dictvalue')
# printing the first index of dictvalue
print(dictvalue[0])

Output:

dict_values([200, 100, 300])
now extracting the first index of dictvalue
Traceback (most recent call last):
File "./prog.py", line 9, in <module>
TypeError: 'dict_values' object does not support indexing

Solution for this type error

To avoid this error, we can convert the view object dict values to a list and then index it. For example, we can convert the dict values object to a list object and then select an element from it at any index.

We can convert dictionary values to list easily by using list(given_dictionary_name. values())

In this case, we convert all of the values from the dictionary to a list and then chose the first element from the list, which is the first value from the dictionary’s first key-value pair.

Below is the implementation:

# given dictionary
dictionary = {'this': 200, 'is': 100, 'BTechGeeks': 300}
# extracting the values and converting to list
dictvalue = list(dictionary.values())
# printing the dictionary values
print(dictvalue)
print('now extracting the first index of dictvalue')
# printing the first index of dictvalue
print(dictvalue[0])

Output:

[200, 100, 300]
now extracting the first index of dictvalue
200

Related Programs: