С функцией open()
чтение текстового файла тривиально. Я предлагаю использовать метод .read()
, а не итерацию по открытому файлу для чтения строк, так как массовое чтение файла в память на намного быстрее, чем итерация по строкам из файла на диске. Это, конечно, если файл меньше вашей оперативной памяти. .strip()
возвращает копию строки с удалением начальных и конечных символов. .split()
разделяется с заданным разделителем, здесь мы используем \n
, чтобы разбить файл на строки.
Наконец, мы перебираем каждую строку и вызываем .split()
в строке, на этот раз с разделением по пробелу. Это возвращает список элементов, где индексированный элемент [0]
будет вашим ключом, а остальные ([1:]
) будут вашими значениями.
Вы можете использовать defaultdict
из построенного collections
-в библиотеке для объединения нескольких элементов в один ключ словаря.
from collections import defaultdict
with open("test.txt") as f:
lines = f.read().strip().split("\n")
d = defaultdict(list)
for line in lines:
ls = line.split(" ")
d[ls[0]] = ls[1:]