小能豆

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

py

第二个列表对列表中的每个项目进行平方,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=', ')

列表相同但代码不同–

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=', ')

…python 给了我我的列表 (c),全部排序。我不明白。或者有没有更符合 Python 风格的方法来做到这一点?


阅读 8

收藏
2024-10-29

共1个答案

小能豆

一般而言,按照惯例,对某个对象进行就地操作的任何操作都会返回None。(但不一定总是遵循这一惯例。) somelist.sort()将就地对列表进行排序。

如果您想要一个已排序的副本,那么您只需调用c = sorted(a + xs)sorted对原始副本进行操作,然后返回该副本。

2024-10-29