Я не очень хорошо умею оценивать сложность времени, но я думаю, что одним из решений является создание собственного генератора для репликации поведения.
def setLowerBound(x, lowerBound):
if not isinstance(x, set):
x = set(x)
for value in x:
if value < lowerBound:
continue
else:
yield value
Приведенный выше код сначала получит набор всехзначений пропустите все значения, которые ниже , чем lowerBound
, и верните каждое значение после.
Пример использования:
a = [1,2,4,5,6,12,5,12,5,1,2,79,6,12,6,1]
print(a)
for i in setLowerBound(a, 5):
print(i)
Вывод:
[1, 2, 4, 5, 6, 12, 5, 12, 5, 1, 2, 79, 6, 12, 6, 1]
5
6
12
79