如何在调用后删除一个列表变量?
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
另一答案
为了删除列表中已知索引处的元素,可以使用弹出功能。
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']
以上是关于如何在调用后删除一个列表变量?的主要内容,如果未能解决你的问题,请参考以下文章