问题标签 [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 - 如何检查一个对象在 Python 中是否可迭代?
如何检查 Python 对象是否支持迭代,也就是可迭代对象(见定义
理想情况下,我想要类似于isiterable(p_object)
返回 True 或 False 的函数(以 为模型isinstance(p_object, type)
)。
python - 从两个可迭代对象创建字典并同时使用它们
假设我有两个列表,我想用它们制作一本字典。像:
这可以按我的意愿工作,并且由于列表的长度不相等,因此元素4
和5
被遗漏了,并且它们没有相应的值。这正如预期的那样。
但是,如果我想要一个值,比如None
输入的键l
怎么办?我希望输出为:
{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
我认为的解决方案之一是迭代两者,比较它们的长度并None
在需要的地方追加。我有一个也有效的解决方案,但我想知道它是否可以以更容易和更短的方式完成?
python - Python __iter__ 和 for 循环
据我了解,我可以for
在对象上使用循环构造和__iter__
返回迭代器的方法。我有一个对象,我为此实现了以下__getattribute__
方法:
我有一个此类的对象,a
发生以下情况:
所以python看到它a
有一个__iter__
方法,但不认为它是可迭代的。我做错了什么?这是python 2.6.4。
java - 我可以在“foreach”中一次又一次地使用可迭代遍历列表吗?
我可以一次又一次地使用可迭代遍历列表吗?当我使用 ArrayList 时,我可以在“foreach”中一次又一次地遍历列表,但是当我在 hadoop(分布式计算框架)中的函数中使用 iterable 作为参数时,只有第一次我可以遍历 iterable,当我再次使用 foreach ,它什么都没有。前任:
-----我必须先将它保存在ArrayList中......在我的理解中,foreach只需要一个iterable,为什么ArrayList可以,但参数不能?感谢您阅读这么多。
java - 实现 Iterable 的通用类
我想要一个实现 T 类型的 Iterable(我们称之为 ImplIterable)的泛型类,它在某个类(不是泛型类类型)上实现 Iterable 接口;例如:
其中 A 是某个类。现在,此代码将无法编译:
但这将:
我不明白为什么后者不能编译,如果 ImplIterable 正确实现了可迭代,为什么我不能迭代它。我做错了什么/是否有针对此类问题的解决方法?
python - 计算生成器/迭代器中项目数的最短方法是什么?
如果我想要迭代中的项目数而不关心元素本身,那么pythonic的方法是什么?现在,我会定义
但我知道lambda
接近被认为是有害的,而且lambda _: 1
肯定不漂亮。
(这个用例是计算匹配正则表达式的文本文件中的行数,即grep -c
。)
java - 在同一个类中实现 Java Iterator 和 Iterable?
我正在尝试了解 JavaIterator
和Iterable
接口
我正在写这堂课
它似乎正在工作。
我应该有:
或者我应该放在MyClassIterator
外面MyClass
哪一个更好?
java - java:对不可变的Iterable进行并发迭代
我有一个Iterable<X>
包含大量元素的不可变对象。(它恰好是一个List<>
但没关系。)
我想做的是启动一些并行/异步任务来迭代Iterable<>
相同的迭代器,我想知道我应该使用什么接口。
这是一个带有待确定接口的示例实现QuasiIteratorInterface
:
这是我的问题:
直接使用没有意义
Iterator
,因为 hasNext() 和 next() 存在同步问题,如果其他人在你之前调用 next(),hasNext() 是无用的。我很想使用
Queue
,但我需要的唯一方法是poll()
我很想使用 ConcurrentLinkedQueue 来保存我的大量元素......除了我可能不得不多次遍历元素,所以我不能使用它。
有什么建议么?
java - 为什么这么多方法使用 Collection 而不是 Iterable?
使用 C#,我开始喜欢它的IEnumerable<T>
界面。在很多情况下,这就是您想要放弃和接受的全部内容。此外,它在 .Net 库中也很有用。例如,您在List<T>
类上有一个构造函数,该构造函数采用IEnumerable<T>
.
我现在必须使用Java,我自然想使用等效的Iterable<T>
接口。但是,我似乎无法在任何地方使用它。一切似乎都在使用扩展Collection<T>
接口。为什么是这样?
例如,您有一个ArrayList<T>
构造函数,它采用Collection<T>
:
按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。
为什么不直接取一个Iterable<T>
呢?
scala - 如何在 Scala 2.9.0 中覆盖 Iterable.flatMap?
我只是将我的一些代码更新到 2.9.0,我遇到了问题。我有一个我称之为“NonStrictIterable”的特征(本质上,一切都应该尽可能地懒惰——在有人真正要求一个元素之前,NonStrictIterable 本身之外的任何代码都不应该运行)。
但是,在 2.9.0 中,我似乎无法覆盖 flatMap。这是一个简化版本,显示错误:
这曾经在 2.9.0 之前工作,但现在我得到“方法 flatMap 不会覆盖任何内容”。查找 Iterable.flatMap 的方法签名,我看到TraversableOnce
类型签名已更改为enTraversableOnce
. 进行相应的更改
我收到编译器错误“错误或无法访问的类型”。
这是怎么回事?有人可以提出解决方法吗?