0

这是关于 Codio 的作业。我是编程新手,不知道在这里做什么。

我们将传入一个数字列表。您的工作是在该列表中找到最大的数字并输出其索引,而不是实际值。

提示:您将需要使用实用程序变量来存储最大值,并决定查看每个数字是否大于先前迭代中遇到的当前最大值。

# Get our numbers from the command line
import sys
numbers= sys.argv[1].split(',')
numbers= [int(i) for i in numbers]

# Your code goes here
4

3 回答 3

1

以前从未使用过codio,但这是人们通常如何找到列表的最大值:

list1 = [1,2,3,4,5,6,10]
ans = list1.index(max(list1))

如果您不允许使用 max

list1 = [1,2,3,4,5,6,10]
ans = 0
for i,n in enumerate(list1):
  if n > list1[ans]:
    ans = i
return ans
于 2019-11-20T19:19:46.143 回答
0
import sys
if len(sys.argv) >= 2:
    numbers = sys.argv[1].split(',')
    numbers= [int(i) for i in numbers]
    max_index = 0
    maximum = numbers[0]
    for index, number in enumerate(numbers):
        if number > maximum:
            maximum = number
            max_index = index
    print "Maximum value:",maximum," at index:",max_index
else:
    print "No numbers entered"
    exit(1)

或者

import sys
if len(sys.argv) >= 2:
    numbers = sys.argv[1].split(',')
    numbers= [int(i) for i in numbers]
    print numbers.index(max(numbers))
else:
    print "No numbers entered"
    exit(1)
于 2019-11-20T19:24:52.100 回答
0

因此,首先,您必须通过命令行发送值,如下所示:

python app.py 1,2,3,4,5

这是代码:

首先,您必须找到最大值:

max_number = numbers[0]
for n in numbers:
  if n > max_number:
      max_number = n

然后,您只需要找到该值所在的位置:

max_index = numbers.index(max_number)
print(max_index)

所以输出将是:4

请记住,它是 4 而不是 5,因为在 Python 中,数组索引从 0 开始。

在此处输入图像描述

编辑:

如果您不允许使用该index功能:

i = 0
for n in numbers:
  if n == max_number:
    break
  i += 1

print(i)

当然,最简单的方法是:

max_number = max(numbers)
max_index = numbers.index(max_number)
print(max_index)
于 2019-11-20T19:18:12.770 回答