2017-01-29 8 views
0

私はちょうど私が文字列からsplit( '')[スペースで分割]予想外の結果を混乱させる。 私はこの問題をどのように克服できるのか教えてください。ここでのように私のコードは、「5」文字のコード少ないし、「1」あなたは文字列値と文字のコードを持って変数VarのリストはPythonの文字列から生成された

str=raw_input() #suppose i give "50 100 50" as string 
var=str.split(' ') #it splits into [50,100,50] 

var.sort() #now sorting command 

print "Sorted var is: %r" %var #it gives [100,50,50] instead of [50,50,100] 
+0

[Numeric Sort in Python]の重複の可能性があります(http://stackoverflow.com/questions/3426108/numeric-sort-in-python) –

答えて

1

をあなたはここ3つの問題を抱えています。

最初の文字列を分割した後、アルファベット順にソートされた文字列のリストが得られます。ここで100は実際に50より前に来ます!関数がすでに存在する場合

int_list = [int(x) for x in var] 

か、私のお気に入り:

int_list = map(int, var) 

第二の問題を

だからまず、あなたはこのように、整数のリストに文字列のリストを変換する必要があります問題には関係しませんが、言及する価値はありません。

str=raw_input() 

変数名としてがあります。これは、型と関数、そしてPythonのクラスであり、あなたの割り当てによってオーバーライドされています。

そして最後に、隙間なく単に空の文字列である

split('') 

を使用しています。この方法はPythonで特別に扱われ、行内の空白、改行、タブなど、あらゆる種類のスペースに分割されます。空の文字列引数とともに使用すると非常に便利です。

+1

おかげでtxidとspider-main ur answereが役立ちました –

0

です。数値でソートする必要があります。値をintに変換する必要があります。

は、このコードを試してみてください。

str=raw_input() #suppose i give "50 100 50" as string 
var=str.split(' ') #it splits into [50,100,50] 

#converting string to int 
var = [int(num) for num in var] 

var.sort() #now sorting command 

print "Sorted var is: %r" %var 

ことができます[50,50,100]

関連する問題