问题标签 [iterable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
87916 浏览

python - 检查iterable的所有值是否都为零

是否有一种简洁/内置的好方法来查看可迭代对象中的所有值是否都为零?现在我正在使用all()一些列表理解,但是(对我来说)似乎应该有一种更具表现力的方法。我认为这在某种程度上等同memcmp()于 C中的 a。

我希望有一个内置函数可以执行以下操作:

该功能是否存在于python中而我只是盲目的,还是应该坚持使用我的原始版本?

更新

我并不是说这allcmp()是解决方案。这是我认为可能更有意义的一个例子。这不是我建议新的 Python 内置插件的地方。

在我看来,all()是不是很有意义。它没有表达“所有”正在检查的内容。您可以假设这all()需要一个可迭代对象,但它并没有表达函数正在寻找什么(bool测试所有函数的可迭代对象 s True)。我要的是一些像allcmp()这样的函数,它需要两个参数:一个可迭代的和一个比较值。我在问是否有一个内置函数可以做类似于我的 make up allcmp()

allcmp()由于我的 C 背景,memcmp()我打电话给我的,我的组合函数的名称在这里无关紧要

0 投票
4 回答
353 浏览

scala - 在 Scala 中,从初始对象和生成下一个对象的函数创建 O(1) 内存 Iterable

我想要一种方便的方法来生成一个Iterable,给定一个初始对象和一个从当前对象生成下一个对象的函数,它消耗 O(1) 内存(即,它不缓存旧结果;如果你想迭代一个第二次,必须再次应用该功能)。

似乎没有对此的库支持。在 Scala 2.8 中,该方法scala.collection.Iterable.iterate具有签名

因此它要求您提前指定您感兴趣的迭代函数应用程序的数量,而我对文档的理解是Iterable.iterate实际上会立即计算所有这些值。另一方面,该方法scala.collection.Iterator.iterate具有签名

看起来不错,但我们只得到一个Iterator不能提供map,filter和朋友的所有便利的。

有没有方便的库方法来生产我想要的东西?

如果不,

有人可以建议这样做的“口语”Scala代码吗?

总而言之,给定一个初始 objecta: A和一个 function f: A => A,我想要一个TraversableLike(例如,可能是一个Iterable),它生成a, f(a), f(f(a)), ...并使用 O(1) 内存, withmapfilter函数,它们也返回 O(1) in记忆。

0 投票
5 回答
11259 浏览

java - Java 中的 LinkedList 实现,具有泛型并增强了

我需要您查看我对单链表 (SLL) 的实现。实现应该使用泛型并且能够使用增强的for。

问题是,当我for (Number n : list)成为or时,我收到错误:“类型不匹配:无法从元素类型对象转换为数字”。listMyLinkedList<Integer>MyLinkedList<Double>

这就是我所拥有的。我不太确定的部分是泛型和迭代器。

提前致谢。

0 投票
11 回答
8355 浏览

java - Java:为什么迭代器不可复制

我认为这Iterator.copy()将是一个非常方便的功能。您可以以更好的方式实现迭代器过滤器。

例如,Googles Java Collection 中使用filter(和类似的)函数的唯一原因UnmodifiableIterator(这只是一个Iteratorwithout remove)是因为您无法实现这样的过滤器,Iterator否则无法在某些时候复制它。(真的,当前界面无法做到这一点;请自己尝试。)

另一个优点是您可以在 for-each-loop 中使用迭代器:因为可复制的迭代器也将自动成为可迭代的。另请参阅问题。现在,不允许这样做的主要设计原因是因为Iterator它实现了迭代器Iterable并且Iterator<T> iterator() { return this; }会使迭代器无效。通过拥有一个copy函数,它很简单,Iterator<T> iterator() { return copy(); }并且不会使原始迭代器无效。因此,没有理由再不允许这样做了。

有什么理由吗?只是为了降低实现它的复杂性?

0 投票
5 回答
10165 浏览

java - Java:为什么 Collection.addAll 不能接受 Iterables?

我想知道为什么该Collection.addAll()方法只接受其他Collections而不接受Iterables。这是为什么?

有没有类似的方法可以为Iterables 做到这一点?

0 投票
5 回答
9921 浏览

python - Python过滤器/最大组合 - 检查空迭代器

(使用 Python 3.1)

我知道对于测试迭代器是否为空的一般问题,这个问题已经被问过很多次了;显然,没有很好的解决方案(我猜是有原因的——迭代器在被要求返回下一个值之前并不知道它是否为空)。

然而,我有一个具体的例子,并希望我可以用它制作干净和 Pythonic 的代码:

有没有更好的方法来做到这一点?

编辑:对不起愚蠢的符号。函数的参数确实是任意可迭代的,而不是列表。

0 投票
10 回答
42817 浏览

java - “可迭代不能强制转换为列表" - `List` 不是 `Iterable` 的一种吗?

我调用了一个getElements返回的方法Iterable<Element>

我这样做了:

这会产生错误:

我以为 aList是一种Iterable

0 投票
6 回答
114681 浏览

python - 如何将可迭代的内容添加到集合中?

将可迭代的所有项目添加到现有的“一个 [...] 明显的方法”set是什么?

0 投票
2 回答
1516 浏览

java - Java 无类型泛型类,删除它们的函数泛型类型

好的关于 javas 泛型、可迭代和 for-each 循环的问题。问题是,如果我声明我的“测试”类没有类型,我会丢失所有函数的所有通用信息,并且 for-each 根本不喜欢这样。

例子

当 'Test t' 没有类型时,'iterator()' 函数返回 'iterator' 而不是 'iterator < Integer >'。

我不确定它背后的原因,我知道一个解决方法就是在 'Test < 上使用通配符?> t = 新测试()'。然而,这是一个不太理想的解决方案。
他们有什么方法可以只编辑类声明及其函数并让 for each 循环工作无类型?

0 投票
3 回答
1165 浏览

java - java:分页结果的设计模式

所以有IterableIteratorList。如果您尝试为其他 Java 代码提供接口,以封装远程服务提供的功能,该功能在“页面”中返回结果,您会使用什么?

例如,考虑一个数据库或网页(例如flickr API)。在第一次检索结果后,您知道结果的总数和前 N 个结果,但在检索其余结果之前,您不知道剩余的结果。