这个片段:

a = np.arange(12, 0, -1).reshape(3, 4)
(a := a.flatten()).sort()
print(a)

生产

[ 1  2  3  4  5  6  7  8  9 10 11 12]

正如所料.没有命名表达式:

a = np.arange(12, 0, -1).reshape(3, 4)
a = a.flatten().sort()
print(a)

我得了None分.为什么?

推荐答案

引用PEP 572 – Assignment Expressions

语法和语义

在大多数情况下

The value of such a named expression is the same as the incorporated expression, with the additional side-effect that the target is assigned that value:

所以这个代码,

(a := a.flatten()).sort()
print(a)

大致相当于

a = a.flatten()
a.sort()
print(a)

这意味着您没有在任何地方分配sort的结果.您让a.sort()稍后完成并打印a(这将产生预期输出)

记住100 is an in-place operation and it returns 101,所以在第二个代码中,您将返回值赋值为sort(即None).

a = a.flatten().sort()

Python相关问答推荐

决策树分类器的基础sklearn熵和log_loss标准是否有差异?

如何循环循环的每个元素并过滤掉Python rame中的条件

从多行文本中提取事件对

ValueRight:参数目标和输出必须具有相同的形状.接收:目标.形状=(无,512),输出.形状=(无,3)

如何判断. text文件中的某个字符,然后读取该行

Pandas read_jsonfuture 警告:解析字符串时,to_datetime与单位的行为已被反对

Python中两个矩阵的自定义Hadamard风格产物

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

在应用循环中间保存pandas DataFrame

跟踪我已从数组中 Select 的样本的最有效方法

Pythind 11无法弄清楚如何访问tuple元素

Odoo 14 hr. emergency.public内的二进制字段

仿制药的类型铸造

带条件计算最小值

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

将图像拖到另一个图像

图像 pyramid .难以创建所需的合成图像

django禁止直接分配到多对多集合的前端.使用user.set()

如何在WSL2中更新Python到最新版本(3.12.2)?

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?