gpt4 book ai didi

python : `del my_list` 与 `del[my_list]`

转载 作者:行者123 更新时间:2023-11-28 19:35:02 27 4
gpt4 key购买 nike

我已经用 Python 创建了一个列表

>>> my_list = [1, 2, 3, 4]

现在如果我想删除列表,我想使用 del 运算符,比如

>>> del my_list

这很好用并且可能是使用它的一般方式。但是在某个地方我偶然发现了一个不寻常的语法

>>> del[my_list]

这也是一样的!现在我对 del 的实际工作方式有点困惑。我可以理解前面的语法,del 是一个内置语句,但第二种语法对我来说就像一个索引。

最佳答案

del 获取名称的目标列表,请参阅 reference documentation :

del_stmt ::=  "del" target_list

就像assignments一样和 for loops ,目标列表包括使用 [...](...) 列表和元组语法:

del (foo, bar)
del [spam, ham, eggs]

所以你不是在下标 del,你是在删除一个名字列表。

你甚至可以嵌套它们:

del (foo, [ham, eggs])

重用现有语法规则比将语法严格限制为以逗号分隔的名称列表要简单。

完整的语法定义是:

target_list     ::=  target ("," target)* [","]
target ::= identifier
| "(" [target_list] ")"
| "[" [target_list] "]"
| attributeref
| subscription
| slicing
| "*" target

所以 del *names 在技术上也是有效的,但是编译器特殊情况下最后一个选项是 SyntaxError 无论如何:

>>> foo = None
>>> del *foo
File "<stdin>", line 1
SyntaxError: can't use starred expression here

关于 python : `del my_list` 与 `del[my_list]`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45021822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com