比较列表 - 家庭作业Python

时间:2011-07-14 02:56:48

标签: list python-3.x compare

 correct_ans = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C', \
               'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']

这是我从txt文件中导入列表的声明

 # import user answers into a list
 infile = open('testscores.txt', 'r')
 driver_ans = infile.readlines()
 infile.close()

 driver_ans = ['B', 'D', 'A', 'A', 'C', 'B', 'B', 'A', 'C', 'D', 'B', 'C', \
               'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']

    for index in range(0, 20):
         if driver_ans[index] == correct_ans[index]:
             total_correct += 1
         else:
             wrong_ans.append(index + 1)

这种逻辑继续回归所有错误的答案。这在视觉上我的“correct_ans”列表和我的“driver_ans”列表比较是不正确的。我究竟做错了什么?!

2 个答案:

答案 0 :(得分:2)

只猜测。如果testscores.txt具有内容

B
D
A
A
...

请记住,driver_ans将是

['B\n', 'D\n', 'A\n', 'A\n', ...

尝试一下

driver_ans = [x.strip ('\n') for x in infile.readlines()]

答案 1 :(得分:2)

readlines()函数返回包含尾随换行符的行。所以,试试:

driver_ans = [x.strip() for x in infile.readlines()]