Fed*_*rer 0 python syntax-error
这个问题只是出于普遍的好奇心.在我目前的项目工作时,我刚刚注意到它(令人惊讶的是,我今天之前没有遇到过).
拿这个代码:
List = ["hi","stack","over","flow","how","you","doing"]
del List(len(List)-1)
Run Code Online (Sandbox Code Playgroud)
错误:
SyntaxError: can't delete function call
Run Code Online (Sandbox Code Playgroud)
我不明白为什么不允许你通过引用对函数的调用来删除列表的索引?我只是闭嘴并接受你不能这样做,还是我做了一些根本错误的事情?
我很抱歉,如果有一个简单的答案,但谷歌得到的帮助不大,或者这显然是显而易见的,我需要帮助.
Jos*_*Lee 12
你的意思是删除列表的最后一个元素,而不List是以某种方式调用函数:
del List[len(List)-1]
Run Code Online (Sandbox Code Playgroud)
Python的del语句必须采用特定的形式,如删除变量,列表[element]或object.property.这些表单可以深层嵌套,但必须遵循.它与赋值语句相似 - 如果您尝试分配给函数调用,则会得到类似的语法错误.
当然,在这种情况下你真正想要的是
del List[-1]
Run Code Online (Sandbox Code Playgroud)
这意味着列表的最后一个元素,并且更像是Pythonic.
您List()应该在列表索引时调用函数List[].
在Python中,Round括号()用于调用函数,而方括号[]用于索引列表和其他序列.
尝试:
del List[len(List) - 1]
Run Code Online (Sandbox Code Playgroud)
甚至更好,使用Python允许负数索引的事实,从最后算起:
del List[-1]
Run Code Online (Sandbox Code Playgroud)
此外,list为清楚起见,您可能希望使列表的名称与内置类型名称不太接近.