如果值的值高于任何列表当前元素的值,如何在列表中存储值?

时间:2018-03-04 01:41:13

标签: python python-3.x list

我是新来的,如果我不清楚,请原谅我,但我会尽我所能......

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

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

我写了以下内容:

while numb >= 0:
numb = int(input()) 

if numb >= 0:
    numbList.append(numb)          
else:
    break                          

numbList.sort()

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

你可以帮我一把吗?

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

1 个答案:

答案 0 :(得分:0)

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]