如何移动到下一个项目中使用循环列表?

问题描述 投票:2回答:4

我需要建立在Python标识列表中的最高数的子程序,但我不知道如何使用循环移动到下一个项目在列表中

我试图加1计数器,但我不能完全肯定的语法

number = []
for i in range(0, 5): # set up loop to run 5 times
    numbers = int(input('Please enter a number: '))
    number.append(numbers) # append to our_list
tempmax = number[0]
maximum = 0
for i in number:
    if tempmax > maximum:
        maximum = tempmax
        tempmax = number[+1]
    else:
        tempmax = number[+1]

print(maximum)

这是我试过,但我真的不知道如何解决它。任何提示,将不胜感激。

python
4个回答
1
投票

一个for loop会给你你遍历序列中的每个项目。

你被点名输入数字numbers和你的号码number的名单。各地SWAP这些名字更清晰。

你迭代numbers的列表,每个项目是number。你把它命名为i这可能使你认为这是一个索引,但它不是,它的实际数量。给它一个好听的名字:

for number in numbers:

然后,你要测试的号码是否是最大的:

    if number > maximum:
        maximum = number

0
投票

这是要你想干什么?

number = []
for i in range(0, 5): # set up loop to run 5 times
    numbers = int(input('Please enter a number: '))
    number.append(numbers) # append to our_list
tempmax = number[0]
maximum = 0
for i in range(len(number)-1):
    if tempmax > maximum:
        maximum = tempmax
        tempmax = number[i+1]
    else:
        tempmax = number[i+1]

print(maximum)

如果你想确定在列表中的最大值,你也可以做这样的事情更容易(无需重新创建轮)。

max_val = max(number)
print(max_val)

0
投票

由于for循环的变量自动和负载它寻求的下一个项目你问它... for YOUR_VAR in YOUR_ITERABLE,您可能需要你想要的项目工作,或在索引。

所以,如果你的项目是arr = [10, 20, 30, 40, 50],你可以访问它们两者兼得。

for item in arr:
     print(item) # Will print successively 10, then 20, then 30, then 40, then 50.

array_indices = len(arr)
for index in array_indices:
    print(index) # will print successively 0, 1, 2, 3, 4
    print(arr[index]) # will print successively 10, then 20... 30, 40, 50

0
投票

也许你正在寻找max(numbers)。它会返回列表中的最大数。

如果你想获得最大后数的指数,试图numbers.index(max(numbers)) + 1

a = [1, 2, 3, 4, 1, 2, 3]
>>> max(a)
4
>>> a.index(max(a))
3
>>> a[a.index(max(a)) + 1]
1

注:list.index()的第一个最大的回报指数。

© www.soinside.com 2019 - 2024. All rights reserved.