如何获取Python中的列表中的元素的数量?
items = [] items.append("apple") items.append("orange") items.append("banana") # FAKE METHOD:: items.amount() # Should return 3
如何获取列表中的元素数目?
len()
函数可以和Python中的很多types一起使用,包括内置types和库types。
>>> len([1,2,3]) 3
如何获得列表的大小?
要查找列表的大小,请使用内置函数len
:
items = [] items.append("apple") items.append("orange") items.append("banana")
现在:
len(items)
返回3。
从文档
len(s)
返回一个对象的长度(项目数量)。 参数可能是一个序列(如string,字节,元组,列表或范围)或集合(如字典,集合或冻结集合)。
len
是从数据模型文档中的 __len__
实现的:
object.__len__(self)
调用来实现内置函数
len()
。 应该返回对象的长度,一个> = 0的整数。另外,一个没有在Python 2中定义__nonzero__()
[或者Python 3中的__len__()
方法并且其__len__()
方法返回0的对象被认为是在布尔上下文中是错误的。
我们也可以看到__len__
是一个列表的方法:
items.__len__()
返回3。
内buildtypes,你可以得到len
(长度)
事实上,我们看到我们可以得到所有描述types的信息:
>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, xrange, dict, set, frozenset)) True
虽然这可能不是有用的,因为它作为“开箱即用”的function会更有意义,但是一个相当简单的方法是创build一个具有length
属性的类:
class slist(list): @property def length(self): return len(self)
你可以这样使用它:
>>> l = slist(range(10)) >>> l.length 10 >>> print l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
从本质上讲,它与列表对象完全相同,并具有对OOP友好的length
属性。
一如往常,你的里程可能会有所不同
除了len
你还可以使用operator.length_hint
(需要python 3.4+)。 对于正常list
两者是等价的,但是length_hint
可以获得列表迭代器的长度,这在某些情况下可能是有用的:
>>> from operator import length_hint >>> l = ["apple", "orange", "banana"] >>> len(l) 3 >>> length_hint(l) 3 >>> list_iterator = iter(l) >>> len(list_iterator) TypeError: object of type 'list_iterator' has no len() >>> length_hint(list_iterator) 3
但是, length_hint
在定义上只是一个“暗示”,所以大部分时间len
更好。
我见过几个答案,build议访问__len__
。 在处理类似list
内置类时,这是可以的,但是它可能会导致定制类出现问题,因为len
(和length_hint
)会执行一些安全检查。 例如,两者都不允许超出某个值的负长度或长度( sys.maxsize
值)。 所以使用len
函数而不是__len__
方法总是比较安全的!
回答你的问题也是以前的例子:
items = [] items.append("apple") items.append("orange") items.append("banana") print items.__len__()
您可以在Python中使用len(l)
命令,其中l是一个列表。
new_list_length = list(x for x in range(10)).__len__()