2016-10-12 5 views
1

プログラムの手順:空のリストを作成し、1から500までの20のランダムな整数で入力するには、リストを1行に印刷し、そのリストの最大値を別の行に出力します。最大値関数は使用できません。(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

リスト内の値のインデックスを印刷する.indexメソッドを使用することができます... [列挙](https://docs.python.org/3/を見てみましょうlibrary/functions.html#enumerate)関数を使用する必要があります。 – SethMMorton

答えて

1

リストには.indexメソッドがあります。それは法案に適合しなければならない。

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

あなたはenumerateを使用して、それぞれの指標と並んで、リスト内のオブジェクトを取得することができます:maxはPythonで組み込み関数があるとして、私が使用している

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) + ".") 

は、maxの代わりにmaxiを使用し、使用してその名前は関数をシャドーします。あなたはそれを必要としませんが、習慣を保つ方が良いです。

3

あなたはあなたが接近している

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)) 
関連する問題