假设我有一个包含3个子列表的列表
a = [[1,1,1],[1,1,1],[1,1,1]]
如果我使用命令len(a[0:2])
我得到答案2(因为列表中有两个元素(子列表))
但是当我做len(a[2])
并想得到答案1时(因为列表中只有一个元素(子列表)),我实际上得到了第三个列表的长度(在这种情况下为3) 。
我该如何解决这个问题?
答案 0 :(得分:0)
您必须指定要查看的范围。
len(a[1:2])
应该可以解决问题。
len(a[x:y])
仅表示“ a从元素x到y的长度(不包括)”
因此,如果您执行len(a[2:2])
,则输出为0。
答案 1 :(得分:0)
您可以使用:
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
答案 2 :(得分:0)
您需要使用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