【发布时间】:2012-03-14 06:00:22
【问题描述】:
我正在尝试执行内联操作,在该操作中我需要对列表进行排序作为流程的一部分。
list 类型对象的 sort 函数对调用它的列表进行操作,而不是返回结果。
Python docs 证实了这一点:
list.sort()
对列表中的项目进行适当的排序。
我通过 Python 命令行尝试过,结果如下:
>>> a = list("hello").sort()
>>> print a
None
>>> b = list("hello")
>>> print b
['h', 'e', 'l', 'l', 'o']
>>> b.sort()
>>> print b
['e', 'h', 'l', 'l', 'o']
有没有办法绕过这个问题,使如下一行成为可能?
result = list(random.choice(basesalts)).sort()
使用上面的代码可以帮助我减少代码的长度和冗长。
【问题讨论】:
-
“似乎在它被调用的列表上运行”。那是错误的。它没有“似乎”。它是这样定义的。没有例外。这就是它应该工作的方式。
list.sort()不返回值;它修改列表。result= ....sort()永远无法工作。根据定义。 -
"似乎证实了这一点:" 错了。他们实际上证实了这一点。
标签: python list sorting random shuffle