Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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 - Fatal编程技术网

Python 如何获取列表中的元素数?

Python 如何获取列表中的元素数?,python,list,Python,List,考虑以下几点: items = [] items.append("apple") items.append("orange") items.append("banana") # FAKE METHOD: items.amount() # Should return 3 如何获取列表中的元素数项?该函数可用于Python中的几种不同类型-内置类型和库类型。例如: >>> len([1, 2, 3]) 3 该函数可以与Python中的几种不同类型(内置类型和库类型)一起使用

考虑以下几点:

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

# FAKE METHOD:
items.amount()  # Should return 3
如何获取列表中的元素数

该函数可用于Python中的几种不同类型-内置类型和库类型。例如:

>>> len([1, 2, 3])
3
该函数可以与Python中的几种不同类型(内置类型和库类型)一起使用。例如:

>>> len([1, 2, 3])
3

虽然这可能没有什么用处,因为它作为“开箱即用”功能更有意义,但一个相当简单的方法是使用
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
属性


与往常一样,您的里程数可能会有所不同。

虽然这可能没有什么用处,因为它作为“开箱即用”功能更有意义,但一个相当简单的方法是使用
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

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

len(items)
返回3

解释 Python中的所有内容都是对象,包括列表。在C实现中,所有对象都有某种类型的头

在Python中,具有“size”的列表和其他类似内置对象尤其具有名为
ob_size
的属性,其中缓存了对象中的元素数。因此,检查列表中对象的数量非常快

但是,如果要检查列表大小是否为零,请不要使用
len
——而是

len

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

len
通过数据模型中的
\uuuuu len\uuuu
实现:

对象。\uuu len\uuuu(self)

调用以实现内置函数
len()
。应返回对象的长度,整数>=0。还有,一个没有 定义一个
\uuuu nonzero\uuuuu()
[在Python 2中或
\uuuu bool\uuuuu()
在Python 3中]方法,其
\uu len\uuuuu()
方法返回零 在布尔上下文中被视为false

我们还可以看到,
\uuu len\uuu
是一种列表方法:

items.__len__()
返回3

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

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, 
                                            range, dict, set, frozenset))
True
不要使用
len
测试空列表或非空列表 当然,要测试特定长度,只需测试是否相等:

if len(items) == required_length:
    ...
但是对于测试零长度列表或相反的列表有一个特殊情况。在这种情况下,不要测试是否相等

此外,不要:

if len(items): 
    ...
相反,只需执行以下操作:

if items:     # Then we have some items, not empty!
    ...

简而言之,
if items
if notes items
更具可读性和性能

如何获得列表的大小? 要查找列表的大小,请使用内置函数,
len

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

len(items)
返回3

解释 Python中的所有内容都是对象,包括列表。在C实现中,所有对象都有某种类型的头

在Python中,具有“size”的列表和其他类似内置对象尤其具有名为
ob_size
的属性,其中缓存了对象中的元素数。因此,检查列表中对象的数量非常快

但是,如果要检查列表大小是否为零,请不要使用
len
——而是

len

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

len
通过数据模型中的
\uuuuu len\uuuu
实现:

对象。\uuu len\uuuu(self)

调用以实现内置函数
len()
。应返回对象的长度,整数>=0。还有,一个没有 定义一个
\uuuu nonzero\uuuuu()
[在Python 2中或
\uuuu bool\uuuuu()
在Python 3中]方法,其
\uu len\uuuuu()
方法返回零 在布尔上下文中被视为false

我们还可以看到,
\uuu len\uuu
是一种列表方法:

items.__len__()
返回3

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

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, 
                                            range, dict, set, frozenset))
True
不要使用
len
测试空列表或非空列表 当然,要测试特定长度,只需测试是否相等:

if len(items) == required_length:
    ...
但是对于测试零长度列表或相反的列表有一个特殊情况。在这种情况下,不要测试是否相等

此外,不要:

if len(items): 
    ...
相反,只需执行以下操作:

if items:     # Then we have some items, not empty!
    ...


简而言之,
if items
if notes items
更具可读性和性能。

回答您的问题,如前面给出的示例所示:

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

print items.__len__()

以前面给出的示例回答您的问题:

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

print items.__len__()
此外,您还可以使用(需要Python 3.4+)。对于正常的
列表
两者都是等效的,但是
length\u 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\u hint
只是一个“提示”,因此大多数情况下
len
更好

我已经看到了一些建议访问
\uuu len\uuu
的答案。这在处理内置类(如my_string = "hello" print(len(my_string)) # OUTPUT: 5