Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python排序方法在用户定义函数中不起作用_Python_Python 2.7 - Fatal编程技术网

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:请考虑接受这个答案,如果它对你有帮助的话。