相关疑难解决方法(0)

在Python中获取迭代器中的元素数量

有没有一种有效的方法来了解Python中迭代器中有多少元素,一般来说,没有遍历每个元素并进行计数?

python iterator

117
推荐指数
10
解决办法
10万
查看次数

获取反向列表的长度

获取反向列表的长度不起作用:

lst = [1,2,3]
lst = reversed(lst)
print len(lst)
Run Code Online (Sandbox Code Playgroud)

TypeError: object of type 'listreverseiterator' has no len()

解决方法是:

lst = [1,2,3]
lst_length = len(lst)
lst = reversed(lst)
print lst_length

# OR
lst = lst[::-1]
print len(lst)
Run Code Online (Sandbox Code Playgroud)

现在我真正的问题是为什么
简单地反转列表不会改变列表的长度,
那么为什么Python会抛出该异常呢?

python list python-2.7

9
推荐指数
1
解决办法
4423
查看次数

通过迭代器理解len函数

阅读文档我注意到内置函数len不支持所有迭代,只支持序列和映射(和集合).在阅读之前,我一直认为该len函数使用迭代协议来评估对象的长度,所以我真的很惊讶地阅读它.

我阅读已经发布的问题(这里这里),但我仍然感到困惑,我仍然没有得到真正的原因,为什么不允许len一般的所有迭代.

这是一个比实施原因更具概念/逻辑性的原因吗?我的意思是当我问一个对象的长度时,我要求一个属性(它有多少个元素),一个对象作为生成器没有的属性,因为它们没有内部元素,即产生元素.

此外,生成器对象可以产生无限长度,导致未定义的长度,这是其他对象不能发生的事情,例如列表,元组,dicts等等......

我是对的,还是有更多的见解/更多我不考虑的事情?

python python-3.x

4
推荐指数
1
解决办法
362
查看次数

标签 统计

python ×3

iterator ×1

list ×1

python-2.7 ×1

python-3.x ×1