How to get the number of elements in a list in Python?
items = []
items.append("apple")
items.append("orange")
items.append("banana")
# FAKE METHOD::
items.amount() # Should return 3
我如何获得列表中的元素数量?
len()
函数可以与Python中的很多类型一起使用 - 包括内置类型和库类型。
>>> len([1,2,3])
3
How to get the size of a list?
To find the size of a list, use the builtin function, len
:
items = []
items.append("apple")
items.append("orange")
items.append("banana")
And now:
len(items)
returns 3.
From the docs
len(s)
Return the length (the number of items) of an object. The argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).
len
is implemented with __len__
, from the data model docs:
object.__len__(self)
Called to implement the built-in function len()
. Should return the length of the object, an integer >= 0. Also, an object that doesn't define a __nonzero__()
[in Python 2 or __bool__()
in Python 3] method and whose __len__()
method returns zero is considered to be false in a Boolean context.
And we can also see that __len__
is a method of lists:
items.__len__()
returns 3.
Builtin types you can get the len
(length) of
And in fact we see we can get this information for all of the described types:
>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list,
xrange, dict, set, frozenset))
True
Do not use len
as a value for a condition
Do not do:
if len(items):
...
Instead, do:
if items:
...
I explain why here but in short, it is more readable and more performant.
While this may not be useful due to the fact that it'd make a lot more sense as being "out of the box" functionality, a fairly simple hack would be to build a class with a length
property:
class slist(list):
@property
def length(self):
return len(self)
You can use it like so:
>>> l = slist(range(10))
>>> l.length
10
>>> print l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Essentially, it's exactly identical to a list object, with the added benefit of having an OOP-friendly length
property.
As always, your mileage may vary.
链接地址: http://www.djcxy.com/p/3132.html上一篇: 如何在Python中连接两个列表?
下一篇: 如何获取Python中列表中元素的数量?