如何在python中删除变量中的整数值

时间:2017-04-03 19:16:15

标签: python

我目前正在python上创建一个测验程序。在random.choice选择每个问题后,我希望程序从列表中删除这个问题,这样就不会被问到两次。但该程序不会删除问题编号,因此仍可以再次选择。这是我的代码:

{{1}}

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:4)

最好的方法是在原始列表中使用random.shuffle来更改项目位置。然后pop他们,直到您的列表中没有其他项目

示例:

import random

questionNumbers = [1,2,3,4]

random.shuffle(questionNumbers)
while questionNumbers:
    print(questionNumbers.pop())

每次以随机顺序打印1,2,3,4

稍微更精细的问题和例子示例答案为列表中的元组:

import random

questionNumbers = [("who killed Kennedy","Lee Harvey Oswald"),("Who starred in XXX","Vin Diesel")]  # sorry for the bad Q&A

random.shuffle(questionNumbers)
while questionNumbers:
    q,a = questionNumbers.pop()
    print("right" if input("{} ?".format(q))==a else "wrong")

答案 1 :(得分:0)

您可以使用list.remove(item)从列表中删除项目。

import random

questionNumbers = [1,2]
questionChosen = random.choice(questionNumbers)
if questionChosen == 1:
    questionNumbers.remove(questionChosen)
    q1 = "Who is John Von Neumann?"
    print(q1)

答案 2 :(得分:0)

我建议不要从列表中明确删除 - 实际上使用del很少见。最好只是弄清楚你想要提前循环的内容,然后循环遍历列表。您可以使用shuffle模块中的random随机排序问题编号,然后循环浏览随机列表:

from random import shuffle

x = [1,2,3,4]
shuffle(x)

for q_num in x:
    print(q_num)