2015-02-04 15 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

相关问题