Реализация набора C ++ STL в Python 3 - PullRequest
0 голосов
/ 05 ноября 2019

Что является эквивалентом набора C ++ STL <> в python 3?

Если нет реализации, что я должен использовать в python для:

1) Сохранить список чисел2) Найти не менее чем элемент в этом списке? как lower_bound <> из набора stl

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Я не очень хорошо умею оценивать сложность времени, но я думаю, что одним из решений является создание собственного генератора для репликации поведения.

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
0 голосов
/ 05 ноября 2019

Вы можете использовать функцию set() в Python, чтобы найти уникальные значения в списке, если это то, что вы ищете.

Пример выглядит следующим образом

temp_list = [1, 2, 3, 2, 1, 4, 5, 4]
unique_list = set(temp_list)
print(unique_list)

Результатыв

[1, 2, 3, 4, 5]

Далее, для получения элементов, которые не меньше определенного lower_bound, вы можете сделать что-то вроде этого.

lower_bound = 2
filtered_list = [i for i in unique_list if i >= lower_bound]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...