Python 在随机索引os初始列表中将项追加到列表
我有一个我正在做的测验的答案列表,我想让它成为多项选择题,在多项选择题测验中,答案永远不会在底部,也不会在同一个索引中,但这就是我的代码Python 在随机索引os初始列表中将项追加到列表,python,list,random,Python,List,Random,我有一个我正在做的测验的答案列表,我想让它成为多项选择题,在多项选择题测验中,答案永远不会在底部,也不会在同一个索引中,但这就是我的代码 Answers = ["bogota", "carracas", "brasilia", "santiago", "london"] Questions = ["colombia", "venezuela", "brasil", "chile", "england"] q = [Questions[i] for i in sorted(random.sampl
Answers = ["bogota", "carracas", "brasilia", "santiago", "london"]
Questions = ["colombia", "venezuela", "brasil", "chile", "england"]
q = [Questions[i] for i in sorted(random.sample(range(len(Questions)), 3))]
tryindex = [i for i, x in enumerate(QuestionsT) if x in q]
Ca = [Answers[i] for i in tryindex]
for x in q:
Pa = [i for i in random.sample(Answers, 3) if i !=q.index(x)]
Pa.append(Ca[q.index(x)])
print("what is the capital of:" + x + "?")
print("\n".join(Pa))
a = input("\n""Answer")
for i in range(0,3):
if a == Ca[i]:
score +=1
这将返回一次迭代的eg:
哥伦比亚的首都是什么?
伦敦
卡拉卡斯
巴西利亚
圣地亚哥
波哥大
请注意,由于.append(Ca[q.insert(x)],波哥大位于底部
我想要的是,本例中的答案将随机插入Ca(正确答案)。有办法做到这一点吗
- 答案是指所有可能的问题的答案的总列表
指所有可能问题的总清单
- 在上述两个列表中,每个元素都通过其索引引用,因此
通过在问题中找到元素的索引,它是 可以找到答案中由相同索引保留的值
- 在上述两个列表中,每个元素都通过其索引引用,因此
- 这是一个干净的解决方案,看看,改变你想要的,索取你没有得到的
# -*- coding: utf-8 -*-
# Imports
import random
# Parameters
data = {'Brasil': 'Brasilia',
'Chile': 'Santiago',
'Colombia': 'Bogota',
'England': 'London',
'Venezuela': 'Carracas'}
nbr_questions = 3
score = 0
former_questions = ['']
# Script
for i in range(nbr_questions):
# Grab the couple country / capital from the data dictionnary
capital = ''
while capital in former_questions:
country, capital = random.choice(list(data.items()))
# Create the proposition display list
proposition_display = list()
proposition_display.append(capital)
i = 0
while i < 2:
cap = random.choice(list(data.values()))
if cap not in proposition_display:
proposition_display.append(cap)
i += 1
# Display
print ('What is the capital of {} ?'.format(country))
answer = input ('Answer: ')
if answer.lower().strip(' ') == capital.lower().strip(' '):
print ('Correct!')
score += 1
else:
print ('Wrong. Answer was {}.'.format(capital))
print ('-----------------------------')
# Add this capital to the list former_questions to avoid repetition
former_questions.append(capital)
print ('Your score is: {}'.format(score))
#-*-编码:utf-8-*-
#进口
随机输入
#参数
数据={'Brasil':'Barsilia',
‘智利’:‘圣地亚哥’,
“哥伦比亚”:“波哥大”,
“英格兰”:“伦敦”,
“委内瑞拉”:“卡拉卡斯”
nbr_问题=3
分数=0
前_问题=['']
#剧本
对于范围内的i(nbr_问题):
#从数据字典中获取夫妻国家/首都
资本=“”
而资本在前(u)问题中:
国家,首都=random.choice(列表(data.items()))
#创建命题显示列表
命题显示=列表()
命题_显示追加(大写)
i=0
而i<2:
cap=random.choice(列表(data.values()))
如果cap不在命题_显示中:
命题_显示追加(cap)
i+=1
#展示
打印({}的首都是什么?’格式(国家))
答案=输入('答案:')
如果回答.lower().strip(“”)=大写.lower().strip(“”):
打印('正确!')
分数+=1
其他:
打印('错误。答案为{}.'.format(大写))
打印('------------------------------')
#将此大写字母添加到问题列表中,以避免重复
前_问题。追加(大写)
打印('您的分数为:{}'。格式(分数))
不要使用索引。将压缩后的问答随机化,或者创建一个dict question=>answer。您的问答列表中没有引号。代码不起作用