注册 登录
编程论坛 Python论坛

编程题求助

hdmiforc 发布于 2021-12-08 14:00, 1261 次点击
对一个数组的整数部分进行排序后,去除与另一个数组的重复值,再去除数组中的重复值,返回离平均值最近的元素的下标(如果同样近,则取较小的)

输入有两行,第一行是待处理数组,第二行是需要被比较的数组

输入:
[9.3,8.5,8.3,2.7,2.5]
[8,3]

输出:
0
2 回复
#2
greenpop2022-01-10 16:24
没看懂您的意思。
#3
fall_bernana2022-01-12 15:25
回复 楼主 hdmiforc
程序代码:

>>> s=[9.3,8.5,8.3,2.7,2.5]
>>> s1=[8,3]
>>> list(map(lambda x:int(x),s))  #求整
[9, 8, 8, 2, 2]
>>> s3=list(set(list(map(lambda x:int(x),s))).difference(s1)) #去除重复
>>> s3
[9, 2]
>>> s4=list(map(lambda x:abs(x-sum(s2)/2),sorted(s3)))#排序后减去平均值
>>> s4
[3.5, 3.5]
>>> s4.index(min(s4)) #求最小值(离平均值最近的值的下标)
0

1