问题标签 [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.
python - 检查iterable的所有值是否都为零
是否有一种简洁/内置的好方法来查看可迭代对象中的所有值是否都为零?现在我正在使用all()
一些列表理解,但是(对我来说)似乎应该有一种更具表现力的方法。我认为这在某种程度上等同memcmp()
于 C中的 a。
我希望有一个内置函数可以执行以下操作:
该功能是否存在于python中而我只是盲目的,还是应该坚持使用我的原始版本?
更新
我并不是说这allcmp()
是解决方案。这是我认为可能更有意义的一个例子。这不是我建议新的 Python 内置插件的地方。
在我看来,all()
是不是很有意义。它没有表达“所有”正在检查的内容。您可以假设这all()
需要一个可迭代对象,但它并没有表达函数正在寻找什么(bool
测试所有函数的可迭代对象 s True
)。我要的是一些像我allcmp()
这样的函数,它需要两个参数:一个可迭代的和一个比较值。我在问是否有一个内置函数可以做类似于我的 make up allcmp()
。
allcmp()
由于我的 C 背景,memcmp()
我打电话给我的,我的组合函数的名称在这里无关紧要。
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) 内存, withmap
等filter
函数,它们也返回 O(1) in记忆。
java - Java 中的 LinkedList 实现,具有泛型并增强了
我需要您查看我对单链表 (SLL) 的实现。实现应该使用泛型并且能够使用增强的for。
问题是,当我for (Number n : list)
成为or时,我收到错误:“类型不匹配:无法从元素类型对象转换为数字”。list
MyLinkedList<Integer>
MyLinkedList<Double>
这就是我所拥有的。我不太确定的部分是泛型和迭代器。
提前致谢。
java - Java:为什么迭代器不可复制
我认为这Iterator.copy()
将是一个非常方便的功能。您可以以更好的方式实现迭代器过滤器。
例如,Googles Java Collection 中使用filter
(和类似的)函数的唯一原因UnmodifiableIterator
(这只是一个Iterator
without remove
)是因为您无法实现这样的过滤器,Iterator
否则无法在某些时候复制它。(真的,当前界面无法做到这一点;请自己尝试。)
另一个优点是您可以在 for-each-loop 中使用迭代器:因为可复制的迭代器也将自动成为可迭代的。另请参阅此问题。现在,不允许这样做的主要设计原因是因为Iterator
它实现了迭代器Iterable
并且Iterator<T> iterator() { return this; }
会使迭代器无效。通过拥有一个copy
函数,它很简单,Iterator<T> iterator() { return copy(); }
并且不会使原始迭代器无效。因此,没有理由再不允许这样做了。
有什么理由吗?只是为了降低实现它的复杂性?
java - Java:为什么 Collection.addAll 不能接受 Iterables?
我想知道为什么该Collection.addAll()
方法只接受其他Collection
s而不接受Iterable
s。这是为什么?
有没有类似的方法可以为Iterable
s 做到这一点?
python - Python过滤器/最大组合 - 检查空迭代器
(使用 Python 3.1)
我知道对于测试迭代器是否为空的一般问题,这个问题已经被问过很多次了;显然,没有很好的解决方案(我猜是有原因的——迭代器在被要求返回下一个值之前并不知道它是否为空)。
然而,我有一个具体的例子,并希望我可以用它制作干净和 Pythonic 的代码:
有没有更好的方法来做到这一点?
编辑:对不起愚蠢的符号。函数的参数确实是任意可迭代的,而不是列表。
java - “可迭代不能强制转换为列表" - `List` 不是 `Iterable` 的一种吗?
我调用了一个getElements
返回的方法Iterable<Element>
。
我这样做了:
这会产生错误:
我以为 aList
是一种Iterable
?
python - 如何将可迭代的内容添加到集合中?
将可迭代的所有项目添加到现有的“一个 [...] 明显的方法”set
是什么?
java - Java 无类型泛型类,删除它们的函数泛型类型
好的关于 javas 泛型、可迭代和 for-each 循环的问题。问题是,如果我声明我的“测试”类没有类型,我会丢失所有函数的所有通用信息,并且 for-each 根本不喜欢这样。
例子
当 'Test t' 没有类型时,'iterator()' 函数返回 'iterator' 而不是 'iterator < Integer >'。
我不确定它背后的原因,我知道一个解决方法就是在 'Test < 上使用通配符?> t = 新测试()'。然而,这是一个不太理想的解决方案。
他们有什么方法可以只编辑类声明及其函数并让 for each 循环工作无类型?
java - java:分页结果的设计模式
所以有Iterable
和Iterator
和List
。如果您尝试为其他 Java 代码提供接口,以封装远程服务提供的功能,该功能在“页面”中返回结果,您会使用什么?
例如,考虑一个数据库或网页(例如flickr API)。在第一次检索结果后,您知道结果的总数和前 N 个结果,但在检索其余结果之前,您不知道剩余的结果。