如何在调用后删除一个列表变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在调用后删除一个列表变量?相关的知识,希望对你有一定的参考价值。

States = 'alabama', 'alaska', 'arizona', 'arkansas'.....
randomState = random.randint(1, 50)
print(States[randomState])

[我制作了一个脚本,从50个状态中随机选择一个状态,它可以工作,但我还想删除它所调用的状态,即它在下一次调用时不再使用相同的变量重复。

答案

我们在这里

import random

States = ['alabama', 'alaska', 'arizona', 'arkansas']
randomState = random.randint(0, len(States) - 1)
print(States.pop(randomState))

多个通话示例

import random

States = ['alabama', 'alaska', 'arizona', 'arkansas']

while States:
    randomState = random.randint(0, len(States) - 1)
    print('Removed random state: '.format(States.pop(randomState)))

输出

python test.py
Removed random state: alaska
Removed random state: alabama
Removed random state: arizona
Removed random state: arkansas
另一答案

为了删除列表中已知索引处的元素,可以使用弹出功能。

Python Data Structures

list.pop([i])删除列表中给定位置的项目,然后把它返还。如果未指定索引,则a.pop()删除并返回列表中的最后一项。 (方法中i周围的方括号签名表示该参数是可选的,而不是您应该在该位置键入方括号。您将看到此表示法经常在Python库参考中找到。)

请注意,如果您尝试弹出“超出范围”的索引,则会引发“ IndexError”。

关于此:

“我还想删除它称其在下一次迭代中不使用相同变量重复的状态”

以下代码将随机打印所有状态,直到将列表中的所有状态打印出来,而不会从原始列表中永久删除状态(它将混合原始顺序)。

import random

states = ['alabama', 'alaska', 'arizona', 'arkansas']
already_printed_count = 0

while already_printed_count < len(states):
    random_state = states.pop(random.randint(0, len(states) - already_printed_count - 1))
    already_printed_count += 1
    states.append(random_state)
    print(random_state)

输出:

alaska
arkansas
alabama
arizona
>>> states
['alaska', 'arkansas', 'alabama', 'arizona']

以上是关于如何在调用后删除一个列表变量?的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中,给定参数的变量列表,如何使用它们构建函数调用?

Spring MVC 和表单绑定:如何从列表中删除项目?

Unity.3D中,两个界面各自脚本中的变量如何调用

如何使用 Python 中的变量删除列表中特定索引处的元素? [复制]

如何在创建后立即从全局中删除一个类?

如何从 R 中的 GLM 调用中检索原始变量名称的列表?