删除空列表有什么特别之处?

时间:2013-01-12 23:35:52

标签: python

考虑以下内容......

In [1]: del []

In [2]: del {}
  File "<ipython-input-2-24ce3265f213>", line 1
SyntaxError: can't delete literal

In [3]: del ""
  File "<ipython-input-3-95fcb133aa75>", line 1
SyntaxError: can't delete literal

In [4]: del ["A"]
  File "<ipython-input-5-d41e712d0c77>", line 1
SyntaxError: can't delete literal

[]有什么特别之处?我希望这也会提高SyntaxError。为什么不呢?我在Python2和Python3中观察到了这种行为。

1 个答案:

答案 0 :(得分:13)

del statement syntax允许target_list,其中包含变量名称的列表或元组。

一次删除多个名称:

del [a, b, c]

相当于:

del (a, b, c)

del a, b, c

但是python没有强制列表实际拥有任何元素。

表达式

del ()

另一方面语法错误;在这种情况下,()被视为一个字面上的空元组。