How to attribut a different variable to each element of list
当心我是个初学者。
我的问题是:我可以要求python为列表中的每个元素添加一个不同的变量吗?
我创建了一个问题列表和一个答案列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 |
我想要:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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) |
显然,我收到错误:
1 2 | a = lst.index(var1) ValueError: 0 is not in list |
如何将lst响应的每个元素都归为var1…VAR12我希望我说清楚。
如果要关联值,请使用dict:
1 2 3 4 5 | 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} |
要询问用户问题并验证:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 2 3 4 5 6 7 | 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 |