【问题标题】:del() vs del statement in python [duplicate]python中的del()与del语句[重复]
【发布时间】:2019-04-18 17:58:30
【问题描述】:
>>> li = [1, 2, 3, 4]
>>> li
[1, 2, 3, 4]
>>> del li[2] #case 1
>>> li
[1, 2, 4]
>>> del(li[2])  # case 2
>>> li
[1, 2]
>>> del (li[1]) # case 3
>>> li
[1]
>>>

我的一位教授使用案例 2 从列表中删除项目。
根据python documentation,case 1 是正确的,并且这个answer 还存在另一种语法方式,所以 case 3 也是正确的,但据我所知,python 中不存在 del 方法,case 2 如何有效。我搜索了整个 python 文档,但找不到它。

更新: 如果我自己在我的模块中编写 del 方法并同时用例 2,python 解释器如何区分它们或者会通过错误来区分它们,尽管我直到现在才尝试过

【问题讨论】:

  • 你可以在很多地方放括号而不影响任何东西。在这里,它们只是多余的。就像return 1return (1) 一样。
  • 好的,如果我在我的模块中编写 del 方法并同时使用上述方法,python 解释器如何区分它们,尽管我直到现在才尝试过。
  • 案例2不是函数调用,还是语句调用。同理if(cond)if (cond)if cond都是一样的。
  • 你应该坚持del ((((((((((((((((((((( list[0] ))))))))))))))))))))) ;)
  • 不能在您的模块中编写del 函数。 del 是一个关键字。

标签: python python-3.x


【解决方案1】:

它们都是相同的,del 是关键字,如 yieldreturn,而 (list[1]) 的计算结果为 list[1]。所以del(list[1])del (list[1]) 是一样的。对于基本情况,由于您没有(),因此您需要强制使用额外的空间,因此del list[1]

编辑:您不能重新定义 del,因为它是语言关键字。

【讨论】:

    【解决方案2】:

    括号不是必须的关键字(如ifdel),但如果你愿意,可以放一些。

    完全一样

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 2014-09-05
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-07
      • 2011-08-02
      相关资源
      最近更新 更多