2017-09-05 62 views
-1

为什么执行以下操作:打印排序列表

print([7,1,0].sort()) 

生产:

None 

在执行下列操作:

a = [7,1,0] 
a.sort() 
print(a) 

生产:

[0, 1, 7] 

+1

我不会添加另一个答案,而是以不同的方式陈述当前的答案:'sort'修改你给它的列表,但不返回任何东西。 'sorted'创建列表的副本,对副本进行排序并返回排序的副本。它保持原来的列表不变。 – Carcigenicate

+0

只是一个提示:我没有降低评分,但你确实拥有的低估可能是因为通过检查文档可以回答这个问题。 ***总是***检查文档,如果你对功能的操作感到困惑。如果您不使用自动显示文档的IDE,则应在编写时在浏览器中打开Python文档。 – Carcigenicate

回答

1

因为在第一个示例print([7,1,0].sort())中,您正在打印的值由sort()返回,并且sort()不返回任何内容。 虽然后来您正在执行sort()的列表a,然后打印列表a

Sort()更改列表中元素的顺序a并且不返回任何内容。

使用sorted()获取排序列表作为返回值。

2

因为.sort()操作列表上,并返回None,而print(sorted(a))打印你想要什么,但不改变列表

2

sort()排序列表中,但返回None。你可能想要sorted

print(sorted([7,1,0]))

1

.sort()方法排序到位列表并返回None。列表变得有序,这就是为什么打印列表显示期望值。但是,print(x.sort())打印的结果为sort()sort()返回None