2015-02-04 16 views
-1
>>>t= ["dddd","a","bb","cccc"] 
>>>t.sort(key=lambda s:len(s)) 
>>>print t 

輸出:作爲input.t被根據與第二線路碼長度排序給出如何打印字符串列表按每個字符串的長度排序,最短的字符串在下面的python腳本中?

['a', 'bb', 'dddd', 'cccc'] 

列表噸。最後我打印它。 so ..現在我想輸入,排序列表並打印它.. 所有在一行代碼(如果可能)。 我試過其他方式,如..

>>> print input().sort(key=lambda s:len(s)) 
    ["aaa","bb","cccc","q"] # input 
    None      #output 
- i think it take return value of input(),i.e is None. 
+0

使用'sorted'而不是'sort'。 – Kevin

回答

1

這實在不是輸入數組的首選方式。但是,因爲你是在蟒蛇2.x和input()評估什麼,你把它,你可以簡單地做:

>>> print sorted(input(), key=len) 
['aa', 'c', 'bbbb'] 
['c', 'aa', 'bbbb'] # output 
>>> 
0

你不能輸入這樣的數組。如果您想處理數組,請創建一個,然後通過調用raw_input()來填充它。然後做排序。

-1

就像ForceBru說,你必須使用的raw_input(),以便能夠輸入列表。通常的輸入不允許輸入代碼段,而是像普通字符串一樣處理,所以輸入的結果是

'["aaa","bb","cccc","q"]'  
+0

在Python 2.7中,它實際上是'raw_input()',它將用戶輸入視爲一個字符串(就像名稱所指示的那樣)。正如python [doc](https://docs.python.org/2/library/functions.html?highlight=input#input)所說的,'input()'等同於'eval(raw_input())',所以'input()'實際上**允許**輸入代碼段。 – VHarisop

相關問題