Программа читает набор ответов от python. l_answers были бы правильными. l_rscore - это ответы, прочитанные из файла и теперь индексированные в список.Программа, которая сравнивает два списка python
Мне нужно знать, как я буду продолжать, если я хочу сравнить друг друга (список [0] || list2 [0]) и проверить количество правильных ответов и неправильных.
Текущий подход не работает и не дает следов. Он просто «вычисляет», никогда не заканчивая.
def main():
l_answers = [['B', 'D', 'A', 'A', 'C'],
['A', 'B', 'A', 'C', 'D'],
['B', 'C', 'D', 'A', 'D'],
['C', 'C', 'B', 'D', 'A']]
l_rscore = read_file()
result = get_result(l_answers, l_rscore)
print result
def read_file():
rows = 4
colums = 5
l_results = []
input_file = open('answers.txt', 'r')
for r in range(rows):
for c in range(colums):
for line in input_file:
l_results.append(line.strip())
return l_results
def get_result(l, l_2):
correct = 0
index = 0
while index < len(l):
if l_2[index] == l[index]:
correct += 1
index += 1
return correct
main()
Я не думаю, что вы можете перебрать 'input_file' больше, чем когда-то в этом роде. – Kevin
Не уверен, что вы имеете в виду. – PlateArmor
Как только вы перебираете файловый объект, он становится исчерпан; итерация по ней снова даст вам нулевые строки. Поэтому наличие 'для строки в input_file:' внутри другого цикла не будет работать правильно, потому что оно даст вам только значения в первый раз. – Kevin