# Python – Assign keys with Maximum element index

Given Dictionary with value lists, the task is to write a Python program to assign each key with an index of the maximum value in the value list.

Examples:

```Input : test_dict = {"gfg" : [5, 3, 6, 3], "is" : [1, 7, 5, 3], "best" : [9, 1, 3, 5]}
Output : {'gfg': 2, 'is': 1, 'best': 0}
Explanation : Max element in "gfg"'s value is 6 at 2nd index, hence assigned 2.

Input : test_dict = {"gfg" : [9, 3, 6, 3], "is" : [1, 7, 5, 3], "best" : [9, 1, 3, 5]}
Output : {'gfg': 0, 'is': 1, 'best': 0
Explanation : Max element in "gfg"'s value is 9 at 0th index, hence assigned 0.```

Method #1 : Using max() + loop + index()

In this, we get the index of the maximum element from the value list using max() and index(). Loop is used for the task of iteration of keys in the dictionary.

## Python3

 `# Python3 code to demonstrate working of` `# Assign keys with Maximum element index` `# Using max() + index() + loop`   `# initializing dictionary` `test_dict ``=` `{``"gfg"``: [``5``, ``3``, ``6``, ``3``], ``"is"``: [``1``, ``7``, ``5``, ``3``], ``"best"``: [``9``, ``1``, ``3``, ``5``]}`   `# printing original dictionary` `print``(``"The original dictionary is : "` `+` `str``(test_dict))`   `res ``=` `dict``()` `for` `key ``in` `test_dict:`   `    ``# using index() to get required value` `    ``res[key] ``=` `test_dict[key].index(``max``(test_dict[key]))`   `# printing result` `print``(``"The maximum index assigned dictionary : "` `+` `str``(res))`

Output:

The original dictionary is : {‘gfg’: [5, 3, 6, 3], ‘is’: [1, 7, 5, 3], ‘best’: [9, 1, 3, 5]}

The maximum index assigned dictionary : {‘gfg’: 2, ‘is’: 1, ‘best’: 0}

Method #2 : Using dictionary comprehension + max() + index()

In this, we perform task of getting result using dictionary comprehension shorthand variation of above method.

## Python3

 `# Python3 code to demonstrate working of` `# Assign keys with Maximum element index` `# Using dictionary comprehension + max() + index()`   `# initializing dictionary` `test_dict ``=` `{``"gfg"``: [``5``, ``3``, ``6``, ``3``], ``"is"``: [``1``, ``7``, ``5``, ``3``], ``"best"``: [``9``, ``1``, ``3``, ``5``]}`   `# printing original dictionary` `print``(``"The original dictionary is : "` `+` `str``(test_dict))`   `# using dictionary comprehension as one liner alternative` `res ``=` `{key: test_dict[key].index(``max``(test_dict[key])) ``for` `key ``in` `test_dict}`   `# printing result` `print``(``"The maximum index assigned dictionary : "` `+` `str``(res))`

Output:

The original dictionary is : {‘gfg’: [5, 3, 6, 3], ‘is’: [1, 7, 5, 3], ‘best’: [9, 1, 3, 5]}

The maximum index assigned dictionary : {‘gfg’: 2, ‘is’: 1, ‘best’: 0}

Method #3: Using a loop and the enumerate() function

Step-by-step algorithm:

1. Initialize a dictionary test_dict with keys as strings and values as lists of integers.
2. Print the original dictionary test_dict.
3. Initialize an empty dictionary res.
4. For each key-value pair in the dictionary test_dict, do the following:
a. Get the maximum value of the list of integers using the max() function.
b. Get the index of the maximum value in the list of integers using a list comprehension.
c. Assign the key and the index value to the res dictionary.
5. Print the resulting dictionary res.

## Python3

 `# initializing dictionary` `test_dict ``=` `{``"gfg"``: [``5``, ``3``, ``6``, ``3``], ``"is"``: [``1``, ``7``, ``5``, ``3``], ``"best"``: [``9``, ``1``, ``3``, ``5``]}`   `# printing original dictionary` `print``(``"The original dictionary is : "` `+` `str``(test_dict))`   `res ``=` `dict``()` `for` `key, values ``in` `test_dict.items():` `    ``max_val ``=` `max``(values)` `    ``max_idx ``=` `[i ``for` `i, v ``in` `enumerate``(values) ``if` `v ``=``=` `max_val][``0``]` `    ``res[key] ``=` `max_idx`   `# printing result` `print``(``"The maximum index assigned dictionary : "` `+` `str``(res))`

Output

```The original dictionary is : {'gfg': [5, 3, 6, 3], 'is': [1, 7, 5, 3], 'best': [9, 1, 3, 5]}
The maximum index assigned dictionary : {'gfg': 2, 'is': 1, 'best': 0}```

Time Complexity: O(nm), where n is the number of keys in the dictionary test_dict and m is the length of the longest list of integers in the dictionary.
Auxiliary Space: O(n), where n is the number of keys in the dictionary test_dict.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next