Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 包含列表的列表内容的长度_Python_List_Count_Items - Fatal编程技术网

Python 包含列表的列表内容的长度

Python 包含列表的列表内容的长度,python,list,count,items,Python,List,Count,Items,是否有命令获取包含列表的列表项的总计数 例如: Names = [['Mark'], ['John', 'Mary'], ['Cindy', 'Tom'], ['Ben']] print (len(Names)) 输出 4 6 但我想要列表项的总数,这样结果将是6。我刚开始学习python,所以对我放松点 import time nameslen = 0 """ There is a list named Names wich contains 4 lists, 0 = ["Mark]

是否有命令获取包含列表的列表项的总计数

例如:

Names = [['Mark'], ['John', 'Mary'], ['Cindy', 'Tom'], ['Ben']]
print (len(Names))
输出

4
6
但我想要列表项的总数,这样结果将是6。我刚开始学习python,所以对我放松点

import time

nameslen = 0

""" There is a list named Names wich contains 4 lists, 0 = ["Mark]
                                                       1 = ['John', 'Mary']
                                                       2 = ['Cindy', 'Tom']
                                                       3 = ['Ben']
"""

Names = [['Mark'], ['John', 'Mary'], ['Cindy', 'Tom'], ['Ben']]

# using print (len(Names)) you will get as result 4, 
# that means list Names contain 4 lists 


for x in range(len(Names)):
    # for each list in Names lists
    # len the list values  
    nameslen += len(Names[x])

print (nameslen)
输出

4
6
可以使用将函数应用于iterable的每个元素。这里我们应用
len
函数和
sum
结果:

Names = [['Mark'], ['John', 'Mary'], ['Cindy', 'Tom'], ['Ben']]
print(sum(map(len, Names)))
# 6
只有当
名称
的每个元素实际上是一个
列表
时,这个(以及所有其他答案)才有效。如果其中一个是
str
,它将添加字符串的长度,如果它没有长度(如
int
float
),它将引发
TypeError

由于函数式方法在现代Python中有时不受欢迎,因此您也可以使用(实际上是a):


这将检查列表中的项是否是列表或字符串之类的可编辑对象。如果是列表,则计数将按列表长度递增,如果项目处于忽略类型,则计数将按1递增

欢迎访问stackoverflow.com。请花些时间阅读,特别是命名和。也请和。最后,请学习如何创建一个。另外,请阅读,并了解您的问题可能被否决的一些原因。最后,请注意。虽然此代码可以回答此问题,但提供有关此代码为什么和/或如何回答此问题的其他上下文可提高其长期价值。
from collections import Iterable

names = [['Mark'], ['John', 'Mary'], ['Cindy', 'Tom'], ['Ben']]

count = 0
ignore_types = (str,bytes)

for x in names:
    if isinstance(x, Iterable) and not isinstance(x, ignore_types):
        count += len(x)
    else:
        count += 1

print(count)