Итак, у меня есть группа из N человек, каждый из которых имеет свой уникальный идентификатор. Каждый человек имеет рандомизированное мнение о каждом уже существующем человеке в диапазоне от 0 до 100. После добавления нового человека я бы хотел, чтобы все существующие люди получили рандомизированное мнение об этом новом человеке. После удаления существующего человека я бы хотел, чтобы все оставшиеся лица удалили свое мнение об удаленном человеке.
Вот что у меня есть на данный момент:
import random
persons = {}
class Person():
def __init__(self, idn):
self.idn = idn
self.opinions = {}
for i in persons:
self.opinions[i] = random.randrange(100)
persons[idn] = self
for i in persons:
persons[i].update()
def update(self):
pass
for i in range(20):
person_i = Person(i)
Теперь ясно, в чем проблема здесь только последний созданный объект имеет мнения всех остальных людей. Я возился с созданием функции Person.update (), но понятия не имею, как действовать дальше.
Я подумал, может быть, уже есть где-то структура, созданная для решения такого рода ситуаций? (Я бы со временем надеялся сделать еще более сложные взаимоотношения). Идея состоит в том, чтобы иметь объект, который поддерживает связь с каждым другим объектом в своей группе, и наоборот, с каждым другим объектом в группе.
Любая помощь приветствуется, особенно ресурсы для обучения. Я новичок в python.