python中2d列表的长度

ran*_*ger 5 python python-2.7

例如,我有一个2D列表mylist =[[1,2,3],[4,5,6],[7,8,9]].

有什么方法可以使用len()函数,这样我可以计算数组索引的长度?例如:

len(mylist[0:3])
len(mylist[1:3])
len(mylist[0:1])
Run Code Online (Sandbox Code Playgroud)

应该给:

9
6
3
Run Code Online (Sandbox Code Playgroud)

Mat*_*ant 5

length = sum([len(arr) for arr in mylist])

sum([len(arr) for arr in mylist[0:3]]) = 9
sum([len(arr) for arr in mylist[1:3]]) = 6
sum([len(arr) for arr in mylist[2:3]]) = 3
Run Code Online (Sandbox Code Playgroud)

将每个列表的长度相加mylist即可得到所有元素的长度。
仅当列表是二维时,这才能正确工作。如果 的某些元素mylist没有列出,谁知道会发生什么......

此外,您可以将其绑定到一个函数:

len2 = lambda l: sum([len(x) for x in l])
len2(mylist[0:3]) = 9
len2(mylist[1:3]) = 6
len2(mylist[2:3]) = 3
Run Code Online (Sandbox Code Playgroud)

  • @MattBryant:对于较小的循环,它会慢一些,但对于较大的列表,由于创建列表所需的时间,生成器总是会更快。 (3认同)
  • 无需使用列表理解。发电机速度更快。 (2认同)