Используя Python, я хотел бы сделать следующее ... создать кортеж наборов.Однако я хочу добавить набор в кортеж только в том случае, если он еще не существует в кортеже.Каждый набор представляет собой пару.Я использую наборы, потому что порядок пар не имеет значения.Я использую кортеж, потому что у меня более 1,5 строк данных для обработки, и кортеж быстрее для поиска, чем список.Я полагаю, что мне все еще нужно сделать некоторое понимание списка, но это один из моих вопросов.Мой первый вопрос: мой код не работает, как я могу это исправить?Мой второй вопрос: как я могу улучшить эффективность кода?
Я упростил этот пример, чтобы дать только основы.Каждый новый набор будет получен из источника данных и обработан.
my_tuple = ({"a", "b"}, {"c", "d"}, {"c", "e"}) # Existing tuple
new_set = {"b", "c"} # Get a set from data source
set_exists = any(new_set in a_set for a_set in my_tuple)
if not set_exists:
my_tuple += (new_set,)
print(my_tuple)
({'a', 'b'}, {'c', 'd'}, {'c', 'e'}, {'b', 'c'})
Это хорошо.Набор не был в кортеже.
new_set = {"b", "a"} # Get a set from data source
set_exists = any(new_set in a_set for a_set in my_tuple)
if not set_exists:
my_tuple += (new_set,)
print(my_tuple)
({'a', 'b'}, {'c', 'd'}, {'c', 'e'}, {'b', 'c'}, {'a', 'b'})
Не хорошо.Набор уже существовал в кортеже.Его не нужно было добавлять.
Большое спасибо за помощь.