嵌套列表中的Python计数子列表

时间:2010-01-13 17:51:51

标签: python

我创建了一个列表 - >

a = [[1,2,3],[4,5,6],[7,8,9]]
  1. 如何获取a中子列表的数量? 就像在这种情况下,它是3

  2. 我正在使用迭代器工具链来遍历此列表

    for elt in itertools.chain.from_iterable(node):
    
  3. 有没有办法知道我是否已遍历子列表?

7 个答案:

答案 0 :(得分:5)

与任何其他清单一样:

>>> len(a)
3
在异构列表中计算子列表的pythonic方法是:

>>> sum(isinstance(i, list) for i in a)
3

你的第二个问题不明确。你能不读你的代码?

答案 1 :(得分:5)

我找到了这个页面,试图学习如何获得所有子列表的总和。我发现这可以使用:

完成
sum(len(x) for x in a)

也许这会帮助别人......

答案 2 :(得分:4)

  1. sum(1 for x in a if isinstance(x, list))

    这假定在。

  2. 中可能存在除列表之外的其他内容
  3. 没有。委派给itertools通常意味着你放弃了解基本价值观。

答案 3 :(得分:0)

1)len(a)是3。

答案 4 :(得分:0)

子列表的数量是

len(a)

每个子列表都是列表中的一个元素,所以你在a中有三个元素,每个元素都是一个包含三个元素的列表(即数字)

答案 5 :(得分:0)

如果列表中存储了不同的类型,您可以通过这种方式进行子列表:

n=0
for b in a:
    if type(b)==type([]):
        n+=1

此外:

是的,sum(1 for x in a if isinstance(x, list))更加pythonic

答案 6 :(得分:0)

仅从另一个角度考虑这个问题,

len(a[0][:])

例如,假设您的列表是这个

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

所以列表a中有4个元素,因此列表a中的每个列表都有3个元素,

a = [[1,2,3],[4,5,6],[7,8,9],[7,8,111]]
print(len(a[0][:]))

将给我们3,这不同于len(a)

我相信您可以执行此操作以查看子字符串,这是我用于MATLAB的方法,并且也适用于python。