Python 添加两个列表,然后排序=无(?)
第二个列表将列表中的每个项目平方为xs。运行下面的代码,python会给我“None”Python 添加两个列表,然后排序=无(?),python,python-3.x,Python,Python 3.x,第二个列表将列表中的每个项目平方为xs。运行下面的代码,python会给我“None” xs = [12, 10, 32, 3, 66, 17, 42, 99, 20] a = [b**2 for b in xs] c = (a + xs).sort() print(c, end=', ') 相同的列表但不同的代码-- …python为我提供了列表(c),全部已排序。我不明白。还是有一种更像蟒蛇的方式来做到这一点 谢谢 一般来说,按照惯例,任何操作到位的东西都将返回None。(但是,不一定总是
xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
a = [b**2 for b in xs]
c = (a + xs).sort()
print(c, end=', ')
相同的列表但不同的代码--
…python为我提供了列表(c),全部已排序。我不明白。还是有一种更像蟒蛇的方式来做到这一点
谢谢 一般来说,按照惯例,任何操作到位的东西都将返回
None
。(但是,不一定总是遵循此约定。)somelist.sort()
将对列表进行适当排序
如果您想要一个排序副本,您可以调用c=sorted(a+xs)
<代码>排序对原始文件的副本进行操作,因此返回副本
这里有一个更为通俗的解释:一般来说,按照惯例,任何操作到位的东西都将返回
None
。(但是,不一定总是遵循此约定。)somelist.sort()
将对列表进行适当排序
如果您想要一个排序副本,您可以调用c=sorted(a+xs)
<代码>排序对原始文件的副本进行操作,因此返回副本
这里有一个更全面的解释:您使用生成器表达式和itertools来减少这样的临时存储量
>>> import itertools
>>> xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
>>> a = (b**2 for b in xs)
>>> c = sorted(itertools.chain(a, xs))
>>> c
[3, 9, 10, 12, 17, 20, 32, 42, 66, 99, 100, 144, 289, 400, 1024, 1764, 4356, 9801]
您可以使用生成器表达式和itertools来减少这样的临时存储量
>>> import itertools
>>> xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
>>> a = (b**2 for b in xs)
>>> c = sorted(itertools.chain(a, xs))
>>> c
[3, 9, 10, 12, 17, 20, 32, 42, 66, 99, 100, 144, 289, 400, 1024, 1764, 4356, 9801]
@OP:
传递
或简单地返回
的函数等同于不返回
。python中所有函数调用的输出都是可分配的,即使您认为它们根本没有返回任何内容<代码>列表。排序返回无。@OP:传递
或简单地返回
的函数等同于返回无
。python中所有函数调用的输出都是可分配的,即使您认为它们根本没有返回任何内容<代码>列表。排序返回无。