Удаление элемента из множества по условию

Рейтинг: 0Ответов: 2Опубликовано: 19.03.2023

Решаю задачу: Удалите из new_set все элементы, которые меньше 34 или больше 120

new_set = {1, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49}
{new_set.discard(x) for x in new_set if x < 34 or x > 120}
print(new_set)

вот такую ошибку выдает:

RuntimeError: Set changed size during iteration

подскажите, пожалуйста, как правильно делать?

Ответы

▲ 0Принят
new_set = {1, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49}
new_set = {x for x in new_set if x < 34 or x > 120}
print(new_set)
▲ 0
new_set = {x for x in new_set if x > 34 if x < 120}