Это вопрос реализации для Python 2.7
Скажем, у меня есть список целых чисел с именем nums
, и мне нужно проверить, все ли значения в nums
равны нулю.nums
содержит много элементов (т.е. более 10000) со многими повторяющимися значениями.
Использование all()
:
if all(n == 0 for n in set(nums)): # I assume this conversion from list to set helps?
# do something
Использование вычитания набора:
if set(nums) - {0} == set([]):
# do something
Редактировать: лучший способ реализовать описанный выше подход, предоставлено пользователем U9-Forward
if set(nums) == {0}:
# do something
Как сложность времени и пространства сравнивается для каждого из этих подходов?Есть ли более эффективный способ проверить это?
Примечание: для этого случая я стараюсь избегать использования numpy / pandas.