添加两个列表然后sort = None(?)

Jim*_*yap 1 python python-3.x

列表中的每个项目的第二个列表,xs.运行下面的代码,python给我'无'

xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
a = [b**2 for b in xs]
c = (a + xs).sort()
print(c, end=', ')
Run Code Online (Sandbox Code Playgroud)

相同的列表但不同的代码 -

xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
a = [b**2 for b in xs]
c = a + xs
c.sort()
print(c, end=', ')
Run Code Online (Sandbox Code Playgroud)

... python给了我列表(c),全部排序.我不明白.或者有更多的pythonic方式来做到这一点?

谢谢!

Joe*_*ton 12

一般来说,按照惯例,任何在现场操作的东西都会返回None.(但是,不一定总是遵循此约定.) somelist.sort()将对列表进行就地排序.

如果你想要一个排序副本,你可以打电话c = sorted(a + xs). sorted在原件的副本上运行,因此返回副本.

这里有更多的解释:http://wiki.python.org/moin/HowTo/Sorting/