gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 22:02:58 25 4
gpt4 key购买 nike

我花了很多时间搜索是否存在类似问题。不幸的是,我不能只对先前提出的问题发表评论以了解我的尝试为何不起作用。在这个网站上有一个问题,一个人想要根据最接近特定值的数字对列表进行排序。 他的例子:不是逐字复制他的例子,而是提出一个可行的解决方案

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

这将返回按最接近 4 (5,2,1,11) 的值排序的列表但是,当我尝试按最接近零的值对更大的列表进行排序时,这发生在我身上:

listA.sort(key = lambda x: abs(x))

Traceback (most recent call last):
File "<pyshell#382>", line 1, in <module>
listA.sort(key = lambda x: abs(x))
File "<pyshell#382>", line 1, in <lambda>
listA.sort(key = lambda x: abs(x))
TypeError: bad operand type for abs(): 'str'

我到底做错了什么导致列表无法按绝对值排序?

这是构成 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)

最佳答案

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

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

看起来您的列表中某处有字符串值而不是数字值。这将起作用(假设为整数值):

listA.sort(key = lambda x: abs(int(x)))

...但最好弄清楚为什么您的列表中有字符串并修复那个

关于python - 尝试按最接近零的值对列表进行排序,在 python 中使用绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com