如何打印字符串列表按每个字符串的长度排序,最短的字符串首先..如下面的python脚本?

时间:2015-02-04 19:21:51

标签: python

>>>t= ["dddd","a","bb","cccc"]
>>>t.sort(key=lambda s:len(s))
>>>print t

输出:

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

列表t作为input.t根据长度用第二行代码进行排序。最后我打印出来。 所以..现在我想要输入,排序列表并打印它..       所有在一个行代码(如果可能)。 我尝试过其他方式,比如..

>>> 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.

3 个答案:

答案 0 :(得分:1)

这实际上不是输入数组的首选方法。但是,由于您使用的是python 2.x并且input()评估了您放入的内容,因此您可以执行以下操作:

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

答案 1 :(得分:0)

您无法输入这样的数组。如果要处理数组,请创建一个数组,然后通过调用raw_input()填充它。然后做排序。

答案 2 :(得分:-1)

就像ForceBru所说,你必须使用raw_input()才能输入列表。通常的输入不允许您输入代码片段,而是像普通字符串一样处理,因此您输入的结果是

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