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)