Skip to main content
 首页 » 编程设计

python之在函数调用结果上调用 "del"导致 "SyntaxError: can' t 删除函数调用”

2025年05月04日11虾米哥

考虑下面的例子:

random_tile = random.choice(tiles) 
del random_tile 

它首先将列表 tiles 中的一个随机元素分配给一个变量,然后调用该变量的函数。

那么如果我们要缩短代码如下:

del random.choice(tiles) 

我们会得到一个SyntaxError: can't delete function call。我尝试了 eval() 但没有成功。如何解决?

编辑:

我想做的是从tiles 列表中随机 删除一个元素。我以为我找到了一种比使用 random.randint() 作为索引更紧凑的方法,但我想没有。

否则是否有 pythonic/常规方法来执行此操作?

请您参考如下方法:

del 不是一个函数,它是一个关键字来创建del statements例如删除变量。您不能将它用作函数或函数,它只能应用于变量名、变量名列表或订阅和切片,例如

del a 
del a,b 
del l[0] 
del l[:] 

要移除随机元素,您可以试试这个

random_tile.remove(random.choice(tiles)) 

但是 这不是删除项目的最佳方式,因为它可能意味着内部搜索项目和项目比较,如果项目不是唯一的,也将不起作用,所以最好是随机获取索引并删除它

index = random.randint(0, len(l)-1) 
del l[index]