同様の問題があるかどうかを確認するために、かなりの時間をかけて検索しました。残念ながら、以前に尋ねられた質問にコメントして、私の試みがうまくいかなかった理由を確認することはできませんでした. このサイトには、特定の値に最も近い数値に従って、リストを並べ替えたいという質問があります。彼の例: 彼の例を逐語的にコピーするのではなく、実用的な解決策を提示する
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)