Множества как элементальные реакции - каждый элемент уникален, а их комбинации дают интересные результаты!
# Создание из списка (дубликаты автоматически удаляются)
team_elements = {"Пиро", "Гидро", "Пиро", "Электро"}
print(team_elements) # {"Пиро", "Гидро", "Электро"}
# Пустое множество
available_domains = set()
# Создание из строки
chars = set("Кокоми") # {'К', 'о', 'к', 'м', 'и'}
# Добавление и удаление
team_elements.add("Дендро") # Добавить элемент
team_elements.remove("Пиро") # Удалить (вызовет ошибку если нет)
team_elements.discard("Гео") # Удалить (без ошибки)
# Проверка наличия
has_hydro = "Гидро" in team_elements # True
# Количество элементов
element_count = len(team_elements) # 3
# Два набора персонажей
team1 = {"Ху Тао", "Е Лань", "Венти"}
team2 = {"Венти", "Чжун Ли", "Е Лань"}
# Объединение множеств (все уникальные персонажи)
all_chars = team1 | team2 # {"Ху Тао", "Е Лань", "Венти", "Чжун Ли"}
# Пересечение (общие персонажи)
common = team1 & team2 # {"Венти", "Е Лань"}
# Разность (уникальные для первой команды)
unique_to_team1 = team1 - team2 # {"Ху Тао"}
# Симметрическая разность (уникальные для каждой команды)
unique_chars = team1 ^ team2 # {"Ху Тао", "Чжун Ли"}
Вы собираете команды для Спиральной Бездны. Нужно проанализировать составы и резонансы.
Команды и элементы:
# Первая половина
team1 = {"Ху Тао", "Син Цю", "Чжун Ли", "Альбедо"}
elements1 = {"Пиро", "Гидро", "Гео", "Гео"}
# Вторая половина
team2 = {"Гань Юй", "Венти", "Мона", "Диона"}
elements2 = {"Крио", "Анемо", "Гидро", "Крио"}
Создайте функции для проверки:
# Все элементы в игре
all_elements = {
"Пиро", "Гидро", "Анемо", "Электро",
"Дендро", "Крио", "Гео"
}
# Проверка резонанса
def check_resonance(elements: set) -> list:
resonances = []
if len(elements) < len(set(elements)):
# Есть повторяющиеся элементы...