如何仅在值高于列表的任何当前元素的值时才在列表中存储值?



我是新来的,所以如果我不清楚,请原谅我,但我会尽力而为......

我是python的新手,所以这可能是一个新手问题:

必须插入数字,直到读取负数,之后,我应该打印机器读取的 5 个最高数字。问题是我一次不能存储超过 6 个数字。

我写了以下内容:

while numb >= 0:
numb = int(input()) 
if numb >= 0:
    numbList.append(numb)          
else:
    break                          
numbList.sort()

但是.append命令只会让我的列表变大,这是我不想要的。

你能帮我一把吗?

也不是母语人士,所以请原谅我可能犯的任何错误:)

from collections import deque
all_numbers = deque(maxlen=6)
while True:
    number = int(input('Enter a positive number: '))
    if number < 0:
        break
    if not all_numbers or number > all_numbers[-1]:
        all_numbers.append(number)
    # print(all_numbers)
print(list(all_numbers)[-5:])

安慰:

Enter a positive number: 1
Enter a positive number: 2
Enter a positive number: 3
Enter a positive number: 4
Enter a positive number: 5
Enter a positive number: 6
Enter a positive number: 7
Enter a positive number: 8
Enter a positive number: 9
Enter a positive number: -1
[5, 6, 7, 8, 9]

最新更新