1.7 LAB:通过标准化调整列表中的值
在分析数据集(例如人体身高或人体体重数据)时,常见的步骤是调整数据。这可以通过标准化为 0 到 1 之间的值或丢弃异常值来完成。
编写一个程序,首先从输入中获取整数列表。输入以一个整数开头,指示后面的整数个数。然后,通过从所有整数中减去最小值来调整列表中的每个整数。
例如:如果输入是:
5
30
50
10
70
65
输出为:
20
40
0
60
55
5表示列表中有5个整数,分别是30、50、10、70和65。列表中的最小值是10,因此程序从列表中的所有整数中减去10。
任何人都可以用Python解决这个问题吗?
这是我的代码。
arr1 = []
input = int()
for i in range(0,input):
e = int(intput())
arr1.append(e)
k = min(arr1)
for i in range(0,val):
arr1[i] = arr1[i] - k
for i in range(0,val):
print(arr1[i])
这是错误。
Traceback (most recent call last):
File "main.py", line 8, in <module>
arr1.append(e)
NameError: name 'e' is not defined
您可以使用列表理解:
input = [5,30,50,10,70,65]
input = input[1:]
output = [i - min(input) for i in input]
print(output)
[20, 40, 0, 60, 55]
这就是我解决问题的方法
list = []
values = int(input())
for n in range(values):
number = float(input())
list.append(number)
largest = max(list)
for number in list:
number = number / largest
print(f'{number:.2f}')
def get_minimum_int(nums):
low = min(nums)
return low
if __name__ == '__main__':
num = int(input())
nums = []
while num != -1:
nums.append(num)
num = int(input())
l = get_minimum_int(nums)
for n in nums:
print(n - l)
我不知道你的问题是否得到解答,但我也有同样类型的任务。 我的是: “对于此程序,通过将所有值除以最大值来调整值。输入以一个整数开头,指示后面的浮点值的数量。
输出每个浮点值保留小数点后两位,可以通过以下方式实现: print('{:.2f}'.format(your_value))
例如:如果输入是:
5
30.0
50.0
10.0
100.0
65.0
输出为:
0.30
0.50
0.10
1.00
0.65
5表示列表中有5个浮点值,分别是30.0、50.0、10.0、100.0和65.0。 100.0 是列表中的最大值,因此每个值都除以 100.0。”
这就是我解决我的问题的方法:
x = int(input())
dislist = []
i = 1
while i <= x:
y = float(input())
dislist.append(y)
i += 1
q = max(dislist)
for item in dislist:
item = item / q
print('{:.2f}'.format(item))
告诉我你的想法:)
我发现你的代码存在一些问题。
input = int()`
input
位于从用户获取输入字符串的函数名称中。 int()
只是返回 0
。您正在将值 0
分配给名为 input
的变量,从而使输入函数不再可访问。
for i in range(0,input): e = int(intput())
因为
input
是 0
,所以这是一个空范围。循环永远不会运行。这很好,因为它不知道 intput
是什么。
因为循环永远不会运行,所以
e
永远不会被定义,这就是为什么你会得到这样的错误。
另一个风格注释:
arr1
是一个list
,因此使用暗示它是数组的名称会产生误导。
您可能想要类似以下代码调整版本的内容。
n = int(input())
vals = []
for _ in range(0, n):
e = int(input())
vals.append(e)
k = min(vals)
for i in range(0, n):
arr1[i] = -= k
for i in range(0, n):
print(arr1[i])
可以使用列表理解来简化收集输入数字。
vals = [int(input()) for _ in range(0, n)]
在分析数据集(例如人体身高或人体体重数据)时,常见的步骤是调整数据。这种调整可以通过标准化为 0 到 1 之间的值或丢弃异常值来完成。
对于此程序,通过将所有值除以最大值来调整值。输入以一个整数开头,指示后面的浮点值的数量。
输出每个浮点值,小数点后两位。
这就是我解决这个问题的方法。
# Get the number of floating points the user wants to use
user_num = int(input())
# Declare num_list to store floating points from the user
num_list = []
# Get floating point numbers from the user and add them to num_list
for i in range(user_num):
num_list.append(float(input()))
# Find the largest floating point
max_num = max(num_list)
# Divide each floating point number in num_list by the max_num and print the result
for num in num_list:
num_result = num / max_num
print(f'{num_result:.2f}')
这可能对您的实验室有帮助:
user_int = []
while True:
user_input = int(input())
user_int.append(int(user_input))
if len(user_int) > (int(user_int[0])):
break
user_int.pop(0)
vals = min(user_int)
for user_vals in user_int:
my_vals = user_vals - vals
print(my_vals)