Исключение "нехороших" детей из списка
У меня есть код, по которому дети должны получать подарки от Санты. У всех есть свои желания (что они хотят получить), но непослушные дети не могут получить никаких подарков, только те, которые были хорошими. И так есть 3 файла: nice.csv и naughty.csv, которые содержат имена детей и страны (страны не имеют значения) и wishlist.csv, в котором есть имена и их пожелания, разделенные запятой.
Это мой код:
class Child:
"""Child."""
def __init__(self, name, country):
"""Child Constructor."""
self.name = name
self.country = country
def __repr__(self):
"""Representation."""
return f"{self.name}"
class Gift:
"""Gift."""
def __init__(self, name):
"""Gift name Constructor."""
self.name = name
def __repr__(self):
"""Representation."""
return f"{self.name}"
class World:
"""World."""
def __init__(self, nice_file, wishlist_file):
"""Files Constructor."""
self.nice_file = nice_file
self.wishlist_file = wishlist_file
def read_file(self, filename):
"""Read file."""
result = []
with open(filename) as f:
reader = csv.reader(f)
for line in reader:
result.append(line)
return result
def nice_list(self):
"""Nice children list."""
nice = []
for line in self.read_file(self.nice_file):
name = Child(line[0], line[1])
nice.append(name)
return nice
def wishlist(self):
"""Wishlist."""
result = {}
for line in self.read_file(self.wishlist_file):
wishes = [Gift(x) for x in line[1:]]
result[line[0]] = wishes
return result
Проблема в том, что у непослушных детей тоже есть свои желания в списке желаний. Я хочу, чтобы непослушных детей не было в конечном результате.
Например:
nice.csv: Миша, Россия
naughty.csv: Маша, Китай
список желаний.csv: Маша,кукла | Миша, робот
Это то, что я хочу получить, и я не знаю, как этого добиться:
{'Миша': робот}
Это то, что я получаю, и это неверно:
{'Маша': кукла, 'Миша': робот}