2024-03-29 01:40:38 发布
网友
{1{1>关于下面的python}我有点困惑:
x= [3,1,2] y = x.sort() print(y) # output = None
我原以为输出是[1,2,3],但是我没有得到。请注意:我知道如何获得正确的输出,但仍然对这里发生的情况感到好奇,因为输出是空的。 在我看来,第二行评估 x、 sort()为[1,2,3],然后将其赋给变量y
代码应该是
x= [3,1,2] x.sort() print(x)
输出
不需要将x.sort()分配给y
x.sort()
如果要分配给其他变量,请使用:
x= [3,1,2] y=x.sorted() print(y)
希望有帮助
您所做的不起作用的原因是方法sort()不返回任何内容。相反,它将自身应用于调用它的对象(在本例中是x),但不返回任何结果。在
sort()
x
您可以用print(x.sort())来验证这一点,它返回None。在
print(x.sort())
None
为了达到您想要的效果,您可以先复制x:y = x.copy(),然后对y:y.sort()排序。 这里您可以检查x是否仍然等于[3,1,2],而{}等于{}
y = x.copy()
y.sort()
[3,1,2]
list的文档告诉您,对列表调用sort方法将执行就地排序。一、 E它将对当前对象内的值进行排序。因此,它不会返回任何值供您存储在y中
>>> x = [3,1,2] >>> x.sort() >>> print(x) [1, 2, 3]
但是,您可能有合理的理由希望排序X的列表而不实际更改它,而是将排序后的输出存储为一个新对象。您可以通过将X传递给sorted函数来实现这一点
代码应该是
输出
^{pr2}$不需要将
x.sort()
分配给y如果要分配给其他变量,请使用:
希望有帮助
您所做的不起作用的原因是方法
sort()
不返回任何内容。相反,它将自身应用于调用它的对象(在本例中是x
),但不返回任何结果。在您可以用
print(x.sort())
来验证这一点,它返回None
。在为了达到您想要的效果,您可以先复制x:}等于{}
y = x.copy()
,然后对y:y.sort()
排序。 这里您可以检查x
是否仍然等于[3,1,2]
,而{list的文档告诉您,对列表调用sort方法将执行就地排序。一、 E它将对当前对象内的值进行排序。因此,它不会返回任何值供您存储在y中
但是,您可能有合理的理由希望排序X的列表而不实际更改它,而是将排序后的输出存储为一个新对象。您可以通过将X传递给sorted函数来实现这一点
^{pr2}$相关问题 更多 >
编程相关推荐