python打印list python数个数 - 如何获取Python中列表中元素的数量?





3 Answers

如何获得列表的大小?

要查找列表的大小,请使用内建函数len

items = []
items.append("apple")
items.append("orange")
items.append("banana")

现在:

len(items)

返回3。

来自docs

len(s)

返回对象的长度(项目数量)。 参数可以是一个序列(如字符串,字节,元组,列表或范围)或集合(如字典,集合或冻结集合)。

len是从数据模型docs __len__实现的:

object.__len__(self)

被调用来实现内置函数len() 。 应该返回对象的长度,一个> = 0的整数。另外,一个没有在Python 2中定义__nonzero__() [或者Python 3中的__len__() ]并且其__len__()方法返回0的对象被认为是在布尔上下文中为false。

我们也可以看到__len__是一个列表方法:

items.__len__()

返回3。

内建类型你可以得到len (长度)

事实上,我们看到我们可以获得所有描述类型的信息:

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, 
                                            xrange, dict, set, frozenset))
True

不要将len用作条件的值

不要做:

if len(items): 
    ...

相反,请执行:

if items:
    ...

解释了为什么在这里,但总之,它更具可读性和更高性能。

python统计个数 list元素统计 python字符串列表
items = []
items.append("apple")
items.append("orange")
items.append("banana")

# FAKE METHOD::
items.amount()  # Should return 3

我如何获得列表中的元素数量?




除了docs你还可以使用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更好。

我见过几个建议访问__len__答案。 在处理像list这样的内置类时,这是可以的,但它可能会导致定制类出现问题,因为len (和length_hint )会执行一些安全检查。 例如,两者都不允许超过某个值的负长度或长度( sys.maxsize值)。 所以使用len函数而不是__len__方法总是比较安全的!




为了完整性,可以不使用len()函数(我不会宽恕这是一个很好的选择):

def count(list):
  item_count = 0
  for item in list[:]:
    item_count = item_count + 1
  return item_count

count([1,2,3,4,5])

list[:]的冒号是隐含的,因此也是可选的)






Related


Tags

python   list