
Списки в Python могут содержать любой тип данных, включая другие списки, что делает их идеально подходящими для реализации многомерных структур данных, таких как матрицы. В этой статье мы рассмотрим, как можно подсчитать количество списков в списке в Python.
Давайте начнем с самого простого способа подсчета списков в списке. Мы будем использовать встроенную функцию type() и генератор списка (list comprehension):
# Исходный список
my_list = [[1, 2, 3], [4, 5, 6], 7, 8, [9, 10]]
# Подсчет количества списков в списке
count = sum(isinstance(i, list) for i in my_list)
print(count)
#3В этом коде isinstance(i, list) возвращает True, если элемент i является списком, и False в противном случае. sum() затем подсчитывает количество True значений.
Приведенный выше код работает хорошо для одноуровневых списков. Однако, если у вас есть многоуровневый список (список, содержащий другие списки, которые также могут содержать списки и т.д.), вы должны применить рекурсивный подход.
# Функция для подсчета списков в многоуровневом списке
def count_lists(my_list):
count = 0
for i in my_list:
if isinstance(i, list):
count += 1 + count_lists(i)
return count
# Исходный многоуровневый список
my_list = [[1, 2, [3, 4, [5, 6]]], 7, [8, [9, 10]]]
# Подсчет количества списков
print(count_lists(my_list))
#5Здесь функция count_lists() принимает список и рекурсивно обходит его, увеличивая счетчик на 1 для каждого списка, который она находит.
Если вы предпочитаете функциональный стиль программирования, вы можете использовать модуль collections и его функцию Counter для подсчета количества списков:
from collections import Counter
# Исходный список
my_list = [[1, 2, 3], [4,
5, 6], 7, 8, [9, 10]]
# Подсчет количества списков в списке
count = Counter(isinstance(i, list) for i in my_list)[True]
print(count)
#3В этом примере Counter() подсчитывает количество True и False значений, возвращаемых isinstance(i, list). Использование [True] возвращает количество True значений.
В этой статье мы рассмотрели различные способы подсчета количества списков в списке в Python. Простейший подход заключается в использовании встроенных функций type() и sum(), но если у вас есть многоуровневые списки, вы должны применить рекурсивный подход. Вы также можете использовать модуль collections для подсчета количества списков функциональным способом.
Содержание: