Я создал список →
a = [[1,2,3],[4,5,6],[7,8,9]]
Как мне подсчитать количество подписок в a? Как и в этом случае, это 3
Я использую цепочку инструментов итератора для перемещения этого списка
for elt in itertools.chain.from_iterable(node):
Есть ли способ узнать, прошел ли я предметный список?
Я нашел эту страницу, чтобы узнать, как получить сумму всех всех подписок. Я понял, что это можно сделать, используя:
sum(len(x) for x in a)
Может быть, это поможет кому-то еще...
как и в любом другом списке:
>>> len(a)
3
pythonic способ подсчета суб-списков в гетерогенном списке:
>>> sum(isinstance(i, list) for i in a)
3
ваш второй вопрос не ясен. не можете ли вы прочитать свой код?
sum(1 for x in a if isinstance(x, list))
Это предполагает, что в могут существовать вещи, отличные от списков.
Нет. Делегирование на itertools
обычно означает, что вы перестаете знать что-либо о базовых значениях.
Если различные типы хранятся в списке, вы можете подобрать такой способ:
n=0
for b in a:
if type(b)==type([]):
n+=1
дополнение:
да, sum(1 for x in a if isinstance(x, list))
больше pythonic
Количество подписок
len(a)
Каждый подсписок является элементом в списке, поэтому у вас есть три элемента в a, каждый из которых представляет собой список с тремя элементами (которые являются числами)
1) len (a) равно 3.