Написать функцию, которая принимает имя файла (строка) в CSV-файл, который содержит информацию об именах студента и их оценках четыре курса и возвращает словарь данных. Ключом словарем должно быть имя учащегося, а значения должны быть списком чисел с плавающей запятой их классов. Для Например, если содержимое файла выглядит следующим образом:Python: содержимое файла словарь
Mark,90,93,60,90
Abigail,84,50,72,75
Frank,46,83,53,79
Yohaan,47,77,74,96
тогда ваша функция должна возвращать словарь, такие как:
out_dict = {'Frank': [46.0, 83.0, 53.0, 79.0],
'Mark': [90.0, 93.0, 60.0, 90.0],
'Yohaan': [47.0, 77.0, 74.0, 96.0],
'Abigail': [84.0, 50.0, 72.0, 75.0]}
Это мой код:
def dict_from_file (file_name):
file_pointer = open(file_name, 'r')
data = file_pointer.readlines()
print (data)
output_dict = {}
for line in data:
file_pointer.close()
return (output_dict)
#Main Program
file_name = input("Enter the exact file name with its extension (.i.e., .txt): ")
result = dict_from_file (file_name)
print (result)
Как вы можете видеть st в цикле for отсутствуют. Проблема в том, что я не могу найти какую-либо логику, чтобы сначала взять ввод из файла и вставить его в словарь. И если я планирую извлечь каждую строку один раз, как я могу добавить ее в словарь с именем в качестве ключа и четырьмя цифрами в качестве значений?
Я предлагаю сочетание этого ответа (несколько столбцов) и srowland's, в котором используется считыватель CSV. Это решение не удастся для совершенно правильной строки CSV, например: «Smith, John», 10,10,10,10 – brianpck
@brianpck Достаточно честный. Решение было составлено вместе с учетом структуры данных, которая была предоставлена. OP может использовать то, что они хотят от решений. :) – idjaw
На самом деле я просто изучаю python, поэтому мне нужно познакомиться со встроенными функциями и их использованием. Большое спасибо за решение, хотя. –