2016-10-12 2 views
1

Инструкции для программы: Чтобы создать пустой список и заполнить его 20 случайными целыми числами от 1 до 500 включительно, распечатайте список в одной строке и распечатайте максимальное значение этого списка в отдельной строке. Функция максимального значения не может использоваться.(Python) Как найти индекс максимального значения списка?

Но затем он просит распечатать индекс максимального значения в списке. Вот то, что я до сих пор:

import random 

print() 
nums = [] 

for num in range(20): 
    nums.append(random.randint(1, 500)); sep='' 

max = nums[0] 
for i in nums: 
    if i > max: 
     max = i 

print(nums) 
print("The maximum value that appears in the list is " + str(max) + ".") 

Так что у меня проблема решена максимальное значение, но я с трудом определить, как именно найти индекс максимального значения из списка.

Любая помощь приветствуется.

+4

Вы близки ... посмотри на [перечислить] (https://docs.python.org/3/ library/functions.html # enumerate), которую вам нужно будет использовать для достижения того, что вы хотите сделать. – SethMMorton

ответ

1

В списках есть метод .index. Это должно соответствовать законопроекту.

>>> ["a","b","c"].index("b") 
1 
1

Вы можете получить объекты в списке наряду с их соответствующими индексами с использованием enumerate:

maxi, index = nums[0], 0 
for ind, i in enumerate(nums): 
    if i > maxi: 
     maxi, index = i, ind 

print("The maximum value that appears in the list is " + str(max) + ".") 
print("It's index is " + str(index) + ".") 

я использовал использовал maxi вместо max, поскольку max является встроенной функцией в Python, и используя это имя затмит функцию; хотя вам это не нужно, лучше сохранить привычку.

3

вы можете использовать .index метод для печати индекса значения в списке

import random 

print() 
nums = [] 

for num in range(20): 
    nums.append(random.randint(1, 500)); sep='' 

max = nums[0] 
for i in nums: 
    if i > max: 
     max = i 

print(nums) 
print("The maximum value that appears in the list is " + str(max) + ".") 

#this line will print index of MAXIMUM value 
print("index of maximum value is :",nums.index(max))