考虑下面的例子:
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]
