family = ['mom', 'dad', 'brother']
mom - Hello, do you need anything in the shop?
brother - Yes, bring some fruits
dad - And beer
mom - okey
dad - thx
brother - thx
f=open("test.rtf","r")
for line in f:
words=line.split()
if words:
print(words[0])
print(line)
f.close()
dialogue = dict() # обычный питоновский словарь
# datasource - коллекция строк. Но данные можно читать и построчно из файла
# with open('text.txt', 'rt') as datasource:
datasource = """mom - Hello, do you need anything in the shop?
brother - Yes, bring some fruits
dad - And beer
mom - okey
dad - thx
brother - thx
""".split()
for line in datasource:
actor, _, text = line.split(' - ') # разбиваем строку на две части
if _ is not None: # нашли разделитель, действуем
# если нужного ключа не было, создать его с указанным значением,
# (в нашем случае с новым пустым списком) и вернуть это значение
# а если ключ был, то просто вернуть его значение
actor_lines = dialogue.setdefault(actor.lower(), [])
actor_lines.append(text)
print(dialogue)
from collections import defaultdict
# если у словаря спрашивают неизвестный ключ, он по-тихому
# поместит по этому ключу пустой список, и отдаст этот список
# этот словарь будет хранить результат
dialogue = defaultdict(list) # list - фабрика новых значений
# datasource - коллекция строк. Но данные можно читать и построчно из файла
# with open('text.txt', 'rt') as datasource:
datasource = """mom - Hello, do you need anything in the shop?
brother - Yes, bring some fruits
dad - And beer
mom - okey
dad - thx
brother - thx
""".split()
for line in datasource:
actor, _, text = line.split(' - ') # разбиваем строку на две части
if _ is not None: # нашли разделитель, действуем
# если нужного значения ключа не было, defaultdict сам создаст запрошенный ключ
# так что мы гарантированно получим список
dialogue[actor.lower()].append(text)
print(dialogue)