无法删除函数调用
这个问题纯粹是出于好奇。我在做当前项目的时候注意到了这个问题(奇怪的是,我之前从来没有遇到过)。
看看这段代码:
List = ["hi","stack","over","flow","how","you","doing"]
del List(len(List)-1)
错误:
SyntaxError: can't delete function call
我不明白为什么不能通过调用一个函数来删除列表中的某个索引?我是不是应该就这样接受这个事实,还是说我做错了什么根本性的事情?
如果这个问题有简单的答案,我很抱歉,但要么是谷歌不太好用了,要么这个问题实在太明显了,我需要帮助。
3 个回答
1
你是可以这么做的。不过,你用的语法不对。正确的写法是:
del List[-1]
注意到“len(List)”这一部分是没用的。
5
你在调用一个函数 List()
,其实应该是用方括号来索引一个列表,也就是 List[]
。
在Python中,圆括号 ()
是用来调用函数的,而方括号 []
是用来索引列表和其他序列的。
试试这个:
del List[len(List) - 1]
或者更好的是,利用Python允许使用负数索引,这样可以从列表的末尾开始计数:
del List[-1]
另外,你可能想把列表的名字改得和内置的 list
类型名不那么相近,这样会更清晰。
13
你想要删除列表中的最后一个元素,而不是把 List
当成函数来调用:
del List[len(List)-1]
在Python中,del
语句必须按照特定的格式来使用,比如删除一个变量、列表中的某个元素,或者对象的属性。这些格式可以很复杂,但必须遵循。如果你试图给一个函数调用赋值,也会出现类似的语法错误。
当然,在这种情况下,你真正想要的是
del List[-1]
这表示列表中的最后一个元素,而且这种写法更符合Python的风格。