问题标签 [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 投票
3 回答
45270 浏览

python - 如何检查一个对象在 Python 中是否可迭代?

如何检查 Python 对象是否支持迭代,也就是可迭代对象(见定义

理想情况下,我想要类似于isiterable(p_object)返回 True 或 False 的函数(以 为模型isinstance(p_object, type))。

0 投票
1 回答
161 浏览

python - 从两个可迭代对象创建字典并同时使用它们

假设我有两个列表,我想用它们制作一本字典。像:

这可以按我的意愿工作,并且由于列表的长度不相等,因此元素45被遗漏了,并且它们没有相应的值。这正如预期的那样。

但是,如果我想要一个值,比如None输入的键l怎么办?我希望输出为:

{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}

我认为的解决方案之一是迭代两者,比较它们的长度并None在需要的地方追加。我有一个也有效的解决方案,但我想知道它是否可以以更容易和更短的方式完成?

0 投票
2 回答
1830 浏览

python - Python __iter__ 和 for 循环

据我了解,我可以for在对象上使用循环构造和__iter__返回迭代器的方法。我有一个对象,我为此实现了以下__getattribute__方法:

我有一个此类的对象,a发生以下情况:

所以python看到它a有一个__iter__方法,但不认为它是可迭代的。我做错了什么?这是python 2.6.4。

0 投票
2 回答
2068 浏览

java - 我可以在“foreach”中一次又一次地使用可迭代遍历列表吗?

我可以一次又一次地使用可迭代遍历列表吗?当我使用 ArrayList 时,我可以在“foreach”中一次又一次地遍历列表,但是当我在 hadoop(分布式计算框架)中的函数中使用 iterable 作为参数时,只有第一次我可以遍历 iterable,当我再次使用 foreach ,它什么都没有。前任:

-----我必须先将它保存在ArrayList中......在我的理解中,foreach只需要一个iterable,为什么ArrayList可以,但参数不能?感谢您阅读这么多。

0 投票
1 回答
1608 浏览

java - 实现 Iterable 的通用类

我想要一个实现 T 类型的 Iterable(我们称之为 ImplIterable)的泛型类,它在某个类(不是泛型类类型)上实现 Iterable 接口;例如:

其中 A 是某个类。现在,此代码将无法编译:

但这将:

我不明白为什么后者不能编译,如果 ImplIterable 正确实现了可迭代,为什么我不能迭代它。我做错了什么/是否有针对此类问题的解决方法?

0 投票
7 回答
45232 浏览

python - 计算生成器/迭代器中项目数的最短方法是什么?

如果我想要迭代中的项目数而不关心元素本身,那么pythonic的方法是什么?现在,我会定义

但我知道lambda接近被认为是有害的,而且lambda _: 1肯定不漂亮。

(这个用例是计算匹配正则表达式的文本文件中的行数,即grep -c。)

0 投票
3 回答
40126 浏览

java - 在同一个类中实现 Java Iterator 和 Iterable?

我正在尝试了解 JavaIteratorIterable接口

我正在写这堂课

它似乎正在工作。

我应该有:

或者我应该放在MyClassIterator外面MyClass

哪一个更好?

0 投票
2 回答
1508 浏览

java - java:对不可变的Iterable进行并发迭代

我有一个Iterable<X>包含大量元素的不可变对象。(它恰好是一个List<>但没关系。)

我想做的是启动一些并行/异步任务来迭代Iterable<> 相同的迭代器我想知道我应该使用什么接口

这是一个带有待确定接口的示例实现QuasiIteratorInterface

这是我的问题:

  • 直接使用没有意义Iterator,因为 hasNext() 和 next() 存在同步问题,如果其他人在你之前调用 next(),hasNext() 是无用的。

  • 我很想使用Queue,但我需要的唯一方法是poll()

  • 我很想使用 ConcurrentLinkedQueue 来保存我的大量元素......除了我可能不得不多次遍历元素,所以我不能使用它。

有什么建议么?

0 投票
3 回答
430 浏览

java - 为什么这么多方法使用 Collection 而不是 Iterable?

使用 C#,我开始喜欢它的IEnumerable<T>界面。在很多情况下,这就是您想要放弃和接受的全部内容。此外,它在 .Net 库中也很有用。例如,您在List<T>类上有一个构造函数,该构造函数采用IEnumerable<T>.

我现在必须使用Java,我自然想使用等效的Iterable<T>接口。但是,我似乎无法在任何地方使用它。一切似乎都在使用扩展Collection<T>接口。为什么是这样?

例如,您有一个ArrayList<T>构造函数,它采用Collection<T>

按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。

为什么不直接取一个Iterable<T>呢?

0 投票
2 回答
711 浏览

scala - 如何在 Scala 2.9.0 中覆盖 Iterable.flatMap?

我只是将我的一些代码更新到 2.9.0,我遇到了问题。我有一个我称之为“NonStrictIterable”的特征(本质上,一切都应该尽可能地懒惰——在有人真正要求一个元素之前,NonStrictIterable 本身之外的任何代码都不应该运行)。

但是,在 2.9.0 中,我似乎无法覆盖 flatMap。这是一个简化版本,显示错误:

这曾经在 2.9.0 之前工作,但现在我得到“方法 flatMap 不会覆盖任何内容”。查找 Iterable.flatMap 的方法签名,我看到TraversableOnce类型签名已更改为enTraversableOnce. 进行相应的更改

我收到编译器错误“错误或无法访问的类型”。

这是怎么回事?有人可以提出解决方法吗?