尝试使用python中的绝对值按最接近零的值对列表进行排序

2024-03-29 10:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我花了相当长的时间寻找是否有类似的问题。不幸的是,我不能仅仅对之前提出的问题发表评论,看看为什么我的尝试没有成功。 在这个网站上有一个问题,人们想根据最接近某个特定值的数字对列表进行排序。 他的例子:不是逐字照搬他的例子,而是提出一个有效的解决方案

list_x = [1,2,5,11]
list_x.sort(key = lambda x: abs(x-4))

它将返回按最接近4(5,2,1,11)的值排序的列表 然而,当试图按最接近于零的值对更大的列表进行排序时,我遇到了这样的情况:

^{pr2}$

我到底是怎么不正确地阻止列表按绝对值排序?在

这是listA的输入数据

for i in decrange(0, 13, i):
   code = (func(seq, float(i)))
   codes = '%.3f' % code
   listA.append(float(codes))
   listB.append(str(codes))
listA.sort(key = lambda k: abs(k))
x = listA[0]
answer = listB.index(x) * float(.01)

Tags: lambdakey列表排序时间codeabsfloat
3条回答

你得到的错误似乎是不言自明的:

TypeError: bad operand type for abs(): 'str'

看起来你的列表中有一个字符串值而不是数值。这将起作用(假设整数值):

^{pr2}$

…但最好弄清楚为什么你的列表中有字符串,然后改为修正。在

相关问题 更多 >