无法删除函数调用

1 投票
3 回答
19339 浏览
提问于 2025-04-15 14:54

这个问题纯粹是出于好奇。我在做当前项目的时候注意到了这个问题(奇怪的是,我之前从来没有遇到过)。

看看这段代码:

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的风格。

撰写回答