![]() |
1
116
|
![]() |
2
97
如果您使用的是Python 3.x:
如果您使用的是python 2.7:
|
![]() |
3
76
|
![]() |
4
35
|
|
5
30
简单到:
|
![]() |
6
23
由于lambda的原因,这不太可能比空for循环快,但可能会给其他人一个想法
如果iter为空,则会引发TypeError |
![]() |
7
10
有这个
如果迭代的长度真的很长——如此之长以至于具体化列表将耗尽内存——那么您确实需要重新考虑设计。 |
![]() |
8
6
我会用
无论如何,都必须运行整个迭代器。以最大效率,如果您不再需要迭代器,您可以丢弃所有值:
不过,我认为这是一个次优的解决方案。 |
![]() |
9
4
|
|
10
1
有关类似的内容,请参见此代码: http://excamera.com/sphinx/article-islast.html 您可以使用它拾取最后一个项目:
|
![]() |
11
0
|
![]() |
12
0
问题在于获取迭代器的最后一个元素,但是如果迭代器是通过对序列应用条件创建的,那么reversed可以用于查找反转序列的“第一个”,只查看所需的元素,方法是对序列本身应用reverse。 一个人为的例子,
|
![]() |
13
0
|
![]() |
14
-7
这个问题是错误的,只能导致一个复杂而低效的答案。 为了得到一个迭代器,您当然要从可iterable开始,在大多数情况下,这将提供一种更直接的方式来访问最后一个元素。
因此,最有效和清晰的方法不是首先创建迭代器,而是使用iterable的本机访问方法。 |
|
Julia · 矢量中相加为总和S的值的数量 2 年前 |
![]() |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 2 年前 |
![]() |
Pratik · 不使用Java DeepCopy迭代器 6 年前 |
![]() |
PanDe · 将两个列表合并为一个Dict、Tuple 6 年前 |
![]() |
bisarch · 迭代哈希集并在每次迭代中删除多个元素 6 年前 |