我花了相当一段时间来搜索是否存在类似的问题。不幸的是,我不能只评论以前提出的问题,看看我的尝试失败的原因。 在这个网站上,存在一个问题,即一个人想要根据最接近的数字对特定值进行排序。 他的例子:不是逐字抄袭了他的例子,但把工作解决方案尝试按最接近零的值对列表进行排序,在python中使用绝对值
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)
你在'更大'列表中有字符串... – jamylak 2012-04-24 14:43:04
输入数据在这里会有所帮助。你也可以调用'abs(int(x))'。 – 2012-04-24 14:43:44
感谢您编辑它,我正在尝试修复它的过程中XD。 – Diosito 2012-04-24 14:46:52