Как вернуть True при обнаружении вложенного списка пустых списков? - PullRequest
2 голосов
/ 01 мая 2020

Я пытался вернуть значение True при написании оператора: list = [[],[],[],[]] list == [] Вместо этого возвращается False

Мой вложенный список состоит из переменное количество пустых списков. Как написать одно утверждение, которое может применяться к вложенному списку [1/2/3 ...] пустых списков?

Ответы [ 6 ]

3 голосов
/ 01 мая 2020
all(x == [] for x in your_list)

для возврата True, если все пусто

any(x != [] for x in your_list)

для возврата True, если хотя бы on не пусто

1 голос
/ 01 мая 2020

Если вы уверены, что все элементы в вашем списке являются списками, вы можете использовать any напрямую, потому что истинное значение [] равно False

list_of_lists = [[],[],[],[]]

if not any(list_of_lists):
   # all lists are empty (or list_of_lists itself is empty)

Различные варианты использования any и all позволит вам проверить другие подобные условия:

if any(list_of_list):
   # at least one of the list is not empty

if all(list_of_list):
   # none of the lists are empty

if not all(list_of_list):
   # at least one of the lists is empty
1 голос
/ 01 мая 2020

Вы можете использовать all в python, чтобы соответствовать условию для всех элементов в списке. В этом случае условие состоит в том, является ли элемент пустым списком или нет.

>>> my_list = [[], [], []]
>>> all([x == [] for x in my_list])
True
1 голос
/ 01 мая 2020

Вы можете сначала удалить все пустые списки, а затем проверить, равен ли результат пустому списку, вы можете сделать это в одной строке следующим образом:

[x for x in list if x != []] == []
0 голосов
/ 01 мая 2020

Используйте любую () функцию.

list = [[], [], []]
any(list)  == bool([])  # evaluates to True

В python значение bool пустого списка равно False, и любая функция возвращает False, если ни одно из значений в списке не является True.

0 голосов
/ 01 мая 2020

Я не совсем понимаю вашу проблему, но если вы хотите обнаружить пустой список или вложенный список пустого списка, попробуйте сохранить только уникальные элементы (скажем, ваш список равен l)

, если l == [] или список (set (l)) == [[]]:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...