在大部分的魔方速拧比赛中,会记录一个选手的5次成绩,平均成绩的方式为去掉最高分和最低分后的平均分。请编写一个函数,给定一个包含5个浮点数的成绩列表times,求出他的平均成绩和最佳成绩(最多保留2位小数)。
示例:
输入: [9.5, 7.6, 11.4, 10.5, 8.1]
,输出: (9.37, 7.6)
。
因为平均成绩是:(9.5 + 10.5 + 8.1) / 3 = 9.37,最佳成绩是:7.6
。
题目难度:简单
题目来源:codewars
def cube_times(times: list) -> tuple:
pass
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
def cube_times(times: list) -> tuple:
min_score = min(times)
max_score = max(times)
while max_score in times:
times.remove(max(times))
while min_score in times:
times.remove(min(times))
return round(sum(times)/len(times),2),min_score
1 个赞
public List<String> cubeTimes(List<Double> list) {
List<String> res = new ArrayList<>();
Double max = list.stream().mapToDouble(x -> x).max().getAsDouble();
List<Double> collect = list.stream().sorted(Double::compareTo).collect(Collectors.toList());
double asDouble = collect.subList(1, collect.size() - 1).stream().mapToDouble(x -> x).average().getAsDouble();
res.add(0, String.format("%.2f", asDouble));
res.add(1, String.format("%.2f", max));
return res;
}
@Test
public void testCubeTimes() {
//cubeTimes(Arrays.asList(9.5, 7.6, 11.4, 10.5, 8.1)).stream().forEach(System.out::println);
assert cubeTimes(Arrays.asList(9.5, 7.6, 11.4, 10.5, 8.1)).equals(Arrays.asList("9.37","11.40"));
assert cubeTimes(Arrays.asList(13.4, 12.3, 9.5, 11.9, 20.8)).equals(Arrays.asList("12.53","20.80"));
assert cubeTimes(Arrays.asList(28.3, 14.5, 17.3, 8.9, 10.1)).equals(Arrays.asList("13.97","28.30"));
}
"""
__author__ = '晨&宇'
__time__ = '2021/9/28 21:23'
在大部分的魔方速拧比赛中,会记录一个选手的5次成绩,平均成绩的方式为去掉最高分和最低分后的平均分。请编写一个函数,
给定一个包含5个浮点数的成绩列表times,求出他的平均成绩和最佳成绩(最多保留2位小数)。
示例:
输入: [9.5, 7.6, 11.4, 10.5, 8.1],输出: (9.37, 7.6)。
因为平均成绩是:(9.5 + 10.5 + 8.1) / 3 = 9.37,最佳成绩是:7.6。
题目难度:简单
题目来源:codewars 1
"""
def cube_times(times: list) -> tuple:
list_a = []
x = min(times)
times.sort()
times.pop(0)
times.pop(-1)
s = 0
for i in times:
s += i
y = round(s / len(times), 2)
list_a.append(y)
list_a.append(x)
return tuple(list_a)
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
def cube_times(times: list) -> tuple:
times.sort(reverse=True)
times.pop(0)
min=times.pop(-1)
sum=0
for i in times:
sum+=float(i)
avg=round(sum/len(times),2)
return avg,min
def test_cube_times():
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
def cube_times(times: list) -> tuple:
return (float("{:.2f}".format((sum(times)- min(times) - max(times))/(len(times)-2))) , min(times))
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
def cube_times(times: list) -> tuple:
# 获取列表长度
n = len(times)-1
m = n
# 用冒泡算法排序
for i in range(0, n):
for j in range(0, m):
if times[j] > times[j+1]:
times[j], times[j + 1] = times[j + 1], times[j]
# 优化冒泡算法代码
m = m - 1
# 计算掐头去尾的平均值,返回两位小数
avg = round(sum(times[1:-1])/(len(times)-2), 2)
# 获取最佳成绩
min = times[0]
# 返回元组(平均成绩,最佳成绩)
return (avg, min)
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
Sun
(逆风微笑的测试狗)
2021 年10 月 24 日 01:22
8
def cube_times(times: list) -> tuple:
min_time = min(times)
avg_time = round((sum(sorted(times)[1:4]) / 3), 2)
return (avg_time, min_time)
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
bliss
(bliss)
2021 年10 月 29 日 02:16
9
def cube_times(times: list) -> tuple:
times.sort()
avg=round(sum(times[1:4])/3,2)
min=times[0]
return avg,min
def cube_times(times: list) -> tuple:
a = max(times)
b = min(times)
avg = round(sum([x for x in times if x != a and x != b]) / 3, 2)
return (avg, b)
assert cube_times([9.5, 7.6, 11.4, 10.5, 8.1]) == (9.37, 7.6)
assert cube_times([13.4, 12.3, 9.5, 11.9, 20.8]) == (12.53, 9.5)
assert cube_times([28.3, 14.5, 17.3, 8.9, 10.1]) == (13.97, 8.9)
Huis
2021 年12 月 24 日 01:25
11
def cube_times(times: list) -> tuple:
r1 = min(times)
del times[times.index(r1)]
del times[times.index(max(times))]
return (round(sum(times)/3,2),r1)