Опубликован: 29.01.2024 88
Списки в Python являются универсальной базовой структурой данных и могут содержать в качестве элементов любые типы данных, включая другие вложенные списки.
Это позволяет с помощью списков создавать многомерные структуры данных, в том числе многомерные матрицы.
При работе с такими структурами данных возникает потребность в подсчете количества вложенных списков в исходном списке, что можно реализовать различными способами в зависимости от уровней вложенности.
Этот способ подсчета использует встроенные функции isinstance()
, sum()
и генератор списка List comprehension
, и позволяет подсчитать количество вложенных списков в простом двухуровневом списке.
list_a = [[], [0, 1], [2, 3], [4, 5, 6], [7, 8, 9, 10]]
# подсчет количества списков в списке
count_lists = sum( isinstance(i, list) for i in list_a)
print(count_lists)
5
В этом примере функция isinstance(i, list)
возвращает True
, если элемент i
является списком, и False
в противном случае, а функция sum()
подсчитывает количество True
значений.
Рекурсивный способ позволяет подсчитать количество вложенных списков в многоуровневом списке с любым уровнем вложенности.
multi_level_list = [ [ [0], 1, 2, [3, 4, [5, 6] ] ], 7, [8, [9, 10] ] ]
# функция для подсчета количества списков в многоуровневом списке
def count_lists(multi_level_list):
return sum(1 + count_lists(i) for i in multi_level_list if isinstance(i,list))
print(count_lists(multi_level_list))
6
В этом примере функция count_lists()
принимает в качестве параметра список с любым уровнем вложенности multi_level_list
и рекурсивно обходит его, а функция sum()
суммирует количество найденных вложенных списков, для которых функция isinstance(i, list)
возвращает True
.
Методы преобразования списка в строку и обратно
Поэлементное суммирование списков (кортежей)
Преобразование строки числовых значений в список чисел
Комментариев нет.