使用两个列表来比较元素并在这两个列表中创建不同元素的列表?

时间:2014-11-24 02:36:18

标签: python list indexing

所以现在,我得到了[3,3,3 ...] 18个值,这很好,因为这意味着我的if和for循环运行良好。唯一的问题是,我似乎无法弄清楚如何使for循环跳过不同的元素。

'#该程序将两个并行列表进行比较 '#多项选择考试。一个列表有考试解决方案 '#和第二个列表有学生的答案。 '# '#存储每个遗漏问题的问题编号 '#在第三个列表中。

'#您必须使用解决方案中提供的三个列表。 '#您的解决方案必须使用索引 '#不要编写任何其他用户定义的函数 '# - 在main函数中编写所有代码。 '#您不能在列表括号[]

中嵌入Python编程语句

主要功能

def main():

# do not modify this statement or contents of list
exam_solution = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C',\
           'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']

# do not modify this statement or contents of list
student_answers = ['B', 'D', 'B', 'A', 'C', 'A', 'A', 'A', 'C', 'D', 'B', 'C',\
           'D', 'B', 'D', 'C', 'C', 'B', 'D', 'A']

# do not modify this statement, you must begin with an empty list
questions_missed = []  

questions = int(len(exam_solution))
print(questions)
i= 0

for answers in range(0, questions):
    if exam_solution[i] == student_answers[i]:
        i += 1
    else:
        questions_missed.append(i+1)


print(questions_missed)



input('press enter to continue')   


main()

' ##您的输出应如下所示: ' ## ' ##恭喜!你通过了考试

' ##您正确回答了17个问题,错误地回答了3个问题

' ##您回答错误的问题的数量是:3 7 14

' ##按enter键继续`

1 个答案:

答案 0 :(得分:0)

if exam_solution[i] == student_answers[i]:
    i += 1
else:
    questions_missed.append(i+1)

应该是

if exam_solution[answers] == student_answers[answers]:
    i += 1
else:
    questions_missed.append(answers + 1)

如果您没有选择有意义的变量名称,这是一个很好的教训