首页 > 解决方案 > 如何使用while循环从列表中的每个整数中减去最小的数字?

问题描述

输入:

5
30
50
10
70
65

5是后面跟着多少个数字。

我的代码:

n = int(input())
list = []
i = 0
while len(list) < n:
    integer = int(input())
    list.append(integer)
    i = i + 1
    minList = min(list)
    integers = list[i - 1] - minList
    print(integers)

我想从 5 个整数中减去最小的数字。

正确的输出:20 40 0 60 55

我的输出:0 20 0 60 55

我理解为什么我的输出是错误的,因为最小的数字是 20,直到输入 10,但我不知道如何纠正它。我尝试了不同的方法,但它们都不起作用。如何从每个整数中减去最小的数字?

标签: pythonwhile-loopnumbers

解决方案


获取列表的输入。使用此列表中的最小值min(),然后从每个列表元素中减去最小值:

n = int(input())                  # Read number of numbers
lst = []

for _ in range(n):
    lst.append(int(input()))      # Append to list

min_value = min(lst)              # Take the minimum number
final_lst = [abs(x-min_value) for x in lst]  # Subtract minimum from each number

推荐阅读