输入的第一行包含一个整数T,表示测试用例的数量。下面是T测试用例的描述。 每个测试用例的第一行包含两个空格分隔的整数N和K,表示测量次数以及将被删除的最大值和最小值的数量。 第二行包含N个空格分隔的整数A1,A2,...,AN,表示测量值。
对于每个测试用例,在删除K最低和K最大测量值后输出包含平均值的单行。
var1=int(input("t:"))
while var1:
list1=[]
var2=int(input("n"))
var3=int(input("k"))
for i in range(var2):
list1.append(int(input()))
list1.sort()
print(list1)
for i in range(var3):
f=len(list1)
list1=list1[1:f-1]
sumOfList=sum(list1)
total=0
number=var2-(2*var3)
total=sumOfList/number
print("%.6f"%total)
var1-=1
答案 0 :(得分:0)
var2=int(input("n"))
将读取整行输入,然后尝试将其转换为整数。每个测试用例的第一行由2个空格分隔的整数组成,因此input()
将返回完整的行,包括两个数字,例如如果输入文件的第二行包含
1 2
然后input()
将返回字符串1 2
。尝试将其转换为int()
的整数将失败:
>>> int('1 2')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1 2'
您可以读取该行,将其拆分,并将每个项目转换为如下所示的整数:
n, k = [int(x) for x in input().split()]
尝试读取每个测试用例的第二行时存在类似的问题,这是一个以空格分隔的数字列表。你可以解决这个问题:
numbers = sorted(int(x) for x in input().split())