2017-06-26 6 views
-2

数字のソート文字列は、特に私が何をしたいのソート最初に発生する番号の後にリストのこの種Pythonの私は少し問題をHAVA

['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7',] 

です。 sortedメソッドを試してみると正しい結果が得られず、後のメソッドのためにデータ型を変更したくありません。私はその代数的な値で文字列をソートしたい。

これを行う簡単な方法はありますか?

+2

などです。これらの文字列を明確にする方法を明確にしてください。 – Meccano

+0

どのように文字列をソートしますか?目的の出力を表示する(理想的にはあなたのコーディングの試み) –

答えて

0

あなたは試すことができます:あなたが何をしようとして

my_list = ['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7'] 

my_list.sort(key = lambda x: int(x.split()[0])) 
0
A = ['520 0', '30000 1', '14000 2', '26273 3', '3829 4', '11776 5', '6947 6', '499 7'] 
print sorted(A, key=lambda x:int(x.split()[0])) 
# ['499 7', '520 0', '3829 4', '6947 6', '11776 5', '14000 2', '26273 3', '30000 1'] 

natural sortingと呼ばれています。これを行うには、sorted()関数のkeyパラメータを使用できます。

0

私はあなたのリストをソートする方法を正しく理解していないが、私はあなたがsorted関数にkey機能を渡して問題を解決することができると思います。

たとえば、w.r.t.を並べ替える場合は、数字の最初の数字は、

sorted(l, key=lambda s: int(s.split(' ')[0])) 
関連する問題