如何在Python中永久移除列表中的元素?
我有一个用Python写的程序,用来玩名叫“名人识别”的游戏。在我的游戏里,一共有15轮。
代码:
while round<15
import random
celeblist=["a","b","c","d","e","f"] ##and so on
celebchoice=random.choice(celeblist)
celeblist.remove(celebchoice)
但是它现在不太好用,我想知道怎么才能把列表中的某个项目永久删除,这样在15轮游戏中它就不会再出现了。
2 个回答
1
目前,你在每次循环的时候都重新创建这个列表。你应该在循环之前就创建好这个列表。此外:
- 建议使用带有
range
的for
循环(在Python 3中,range
是一个迭代器),而不是用while
循环。 - 在开始时导入
random
模块,而不是在循环里面导入。
修正后的代码:
import random
celeblist = ["a","b","c","d","e","f"] # and so on
for round in range(15):
celebchoice = random.choice(celeblist)
print("Current elem: %s" % celebchoice)
celeblist.remove(celebchoice)
0
为什么不提前选择好每轮要用的随机名人呢?
import random
celebs = [
"a", "b", "c", "d", "e", "f",
"g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r" # need at least 15
]
chosen = random.sample(celebs, 15)
for round,celeb in enumerate(chosen, 1):
print("{}: {}".format(round, celeb))
这样就能得到
1: j
2: a
3: r
4: f
5: n
6: o
7: g
8: k
9: i
10: l
11: e
12: b
13: d
14: q
15: p