Длина одного подсписка в Python - PullRequest
0 голосов
/ 23 ноября 2018

Предположим, у меня есть список из 3 подсписков

a = [[1,1,1],[1,1,1],[1,1,1]]

Если я использую команду len(a[0:2]), я получу ответ 2 (потому что в списке два элемента (подсписка))

Но когда я делаю len(a[2]) и хочу получить ответ 1 (потому что в списке только один элемент (подсписок)), я фактически получаю длину третьего списка (в данном случае 3).

Как я мог решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Вы можете использовать:

print(len(a[2:3]))

или, если хотите, встроить, сделать функцию:

_len=len
def len(l):
    if _len(l)==0:
        return 0
    elif isinstance(l[0],list):
        return _len(l)
    return _len([l])

a=[[1,1,1],[1,1,1],[1,1,1]]
print(len(a[2]))

Оба Вывод:

1
0 голосов
/ 23 ноября 2018

Вам нужно использовать len(a[2:3]):

 a = [[1,2,3],[4,5,6],[7,8,9]]

a[2]
>>> [7, 8, 9] 

len(a[2])
>>> 3

a[2:3]
>>> [[7, 8, 9]] 

len(a[2:3])
>>> 1
0 голосов
/ 23 ноября 2018

Вы должны указать диапазон, на который хотите посмотреть.

len(a[1:2]) должно сделать трюк.

len(a[x:y]) просто означает «длину a от элемента x до y (не включительно)»

Так что если выdo len(a[2:2]) вывод равен 0.

...