Python 3.8+,在 lambda 函数中赋值

Python 3.8+, assignment in lambda function

我有以下功能:

sorted(
    [
        #...
    ],
    key=lambda x: (
        x.get("order", {}).get("data") is None,
        x.get("order", {}).get("data"),
    ),
)

我可以在这里使用赋值 :=x.get("order", {}).get("data") 存储在变量中吗?

可以,只要确保正确地括号化表达式即可:

sorted(
    [
        #...
    ],
    key=lambda x: (
        (y := x.get("order", {}).get("data")) is None,
        y,
    ),
)