Python排序方法在用户定义函数中不起作用
有人能告诉我这个密码有什么问题吗?我需要输出排序列表和反向列表Python排序方法在用户定义函数中不起作用,python,python-2.7,Python,Python 2.7,有人能告诉我这个密码有什么问题吗?我需要输出排序列表和反向列表 def sort_num(): count=1; global a a=[] while count<11: no=int(raw_input("no %d:" %count)) a.append(no) count+=1 print a print a.reverse() print a.sort() list.reve
def sort_num():
count=1;
global a
a=[]
while count<11:
no=int(raw_input("no %d:" %count))
a.append(no)
count+=1
print a
print a.reverse()
print a.sort()
list.reverse
和list.sort
是就地反转和排序功能。它们返回None
。因此,您必须单独打印a
,如下所示
a.reverse()
print a
a.sort()
print a
另一个选项是调用内置的
reversed
(返回迭代器)和sorted
(返回排序副本)方法
这将为您提供数组的排序版本
sorted(a, reverse=True)
如果要就地排序,请执行以下操作:
a.sort(reverse=True)
解释list.sort()为什么不返回已排序的列表? 在性能很重要的情况下,复制列表只是为了对其进行排序是浪费的。因此,list.sort()将对列表进行适当排序 为了提醒您这一事实,它不会返回排序列表。这样,当您需要一个已排序的副本,但也需要保留未排序的版本时,您就不会被愚弄到意外地覆盖列表。在这种情况下,请使用内置的sorted()函数 sorted()是一个内置函数:
>>> help(sorted)
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
>>>
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
list.sort()是一种列表方法,它将在列表本身上更改:
>>> help(sorted)
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
>>>
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
片段:
>>> ls = [3,2,1]
>>> sorted(ls)
[1, 2, 3]
>>> ls
[3, 2, 1]
>>> ls.sort()
>>> ls
[1, 2, 3]
>>>
希望这能消除您的疑虑。
列表。反转
和列表。排序
修改列表并不返回任何内容。你需要打印<代码> a <代码>。欢迎McValue:请考虑接受这个答案,如果它对你有帮助的话。