注意我是初学者。
我的问题是:我可以要求Python将不同的变量归因于列表的每个元素。
我创建了一个问题列表和一个答案列表
lst_questions = ['6+11', '3+3', '9+10', '2+7', '11+8', '9+3', '11+9', '3+3', '2+4', '7+4', '4+8', '3+9']
lst_reponses = [17, 6, 19, 9, 19, 12, 20, 6, 6, 11, 12, 12]
var1 = 0
var2 = 0
var3 = 0
var4 = 0
var5 = 0
var6 = 0
var7 = 0
var8 = 0
var9 = 0
var10 = 0
var11 = 0
var12 = 0
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
g = 0
h = 0
i = 0
j = 0
k = 0
l = 0
我希望:
def apply_solution(lst):
a = lst.index(var1)
b = lst.index(var2)
c = lst.index(var3)
d = lst.index(var4)
e = lst.index(var5)
f = lst.index(var6)
g = lst.index(var7)
h = lst.index(var8)
i = lst.index(var9)
j = lst.index(var10)
k = lst.index(var11)
l = lst.index(var12)
#Solution
lst[a], lst[b], lst[c], lst[d], lst[e], lst[f], lst[g], lst[h], lst[i], lst[j], lst[k], lst[l] = lst[a], lst[k], lst[j], lst[i], lst[h], lst[g], lst[f], lst[e], lst[d], lst[c], lst[b], lst[l]
#Verification indice
#print a,b,c
return lst
print apply_solution(lst_reponses)
显然,我收到错误:
a = lst.index(var1)
ValueError: 0 is not in list
如何将lst_reponses的每个元素归因于var1 ... var12 我希望我能说清楚。
答案 0 :(得分:1)
如果要关联值,请使用dict:
lst_questions = ['6+11', '3+3', '9+10', '2+7', '11+8', '9+3', '11+9', '3+3', '2+4', '7+4', '4+8', '3+9']
lst_reponses = [17, 6, 19, 9, 19, 12, 20, 6, 6, 11, 12, 12]
data = dict(zip(lst_questions,lst_reponses))
{'2+4': 6, '2+7': 9, '3+3': 6, '9+10': 19, '6+11': 17, '3+9': 12, '9+3': 12, '11+9': 20, '11+8': 19, '7+4': 11, '4+8': 12}
询问用户问题并验证:
from random import choice
# "3+2" etc.. keys and correct result as value
data = dict(zip(lst_questions, lst_reponses))
# get random key
question = choice(data.keys())
inp = raw_input("What is {}".format(question))
# is user answer match the value
if int(inp) == data[question]:
print("Well done")
else:
print("Incorrect")
答案 1 :(得分:0)
lst_reponses = [17, 6, 19, 9, 19, 12, 20, 6, 6, 11, 12, 12]
from collections import defaultdict
dct = defaultdict(list)
for i in xrange(len(lst_reponses)):
dct["var{}".format(i+1)] = lst_reponses[i]
print dct