問題タブ [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 - 2 つの iterable から辞書を作成し、両方を使用する
2 つのリストがあり、それらから辞書を作成したいとします。お気に入り:
これは私が望むように機能し、リストの長さが等しくないため、要素4
と要素5
は除外され、それらに対応する値はありません。それは予想通りです。
しかし、値が必要な場合はどうすればよいでしょNone
うl
か。出力を次のようにしたい:
{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
私が考えた解決策の 1 つは、両方を反復処理し、それらの長さを比較して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は反復可能である必要があるだけですが、なぜArrayListはできますが、パラメーターはできませんか?たくさん読んでくれてありがとう。
java - Iterable を実装する汎用クラス
いくつかのクラス(ジェネリッククラスタイプではない)にIterableインターフェースを実装するタイプTのIterable(ImplIterableと呼びましょう)を実装するジェネリッククラスが必要です。例えば:
A はあるクラスです。さて、このコードはコンパイルされません:
しかし、これは:
後者がコンパイルされない理由と、反復可能を適切に実装している場合に ImplIterable を反復処理できない理由がわかりません。私は何か間違ったことをしていますか/この種の問題に対する回避策はありますか?
python - ジェネレーター/イテレーターでアイテムの数を数える最短の方法は何ですか?
要素自体を気にせずに iterable 内のアイテムの数が必要な場合、それを取得する Pythonic の方法は何でしょうか? 今、私は定義します
lambda
しかし、私は有害であると見なされることに近いことを理解しており、lambda _: 1
確かにきれいではありません.
(これの使用例は、正規表現に一致するテキスト ファイル内の行数をカウントすることですgrep -c
。)
java - Java IteratorとIterableを同じクラスに実装しますか?
JavaIterator
とIterable
インターフェースを理解しようとしています
私はこのクラスを書いています
動作しているようです。
私が持っている必要があります:
または私はMyClassIterator
外MyClass
に置く必要があります
どちらがいいですか?
java - java: 不変の Iterable に対する同時反復
Iterable<X>
多数の要素を持つ不変のものがあります。(たまたまですが、List<>
気にしないでください。)
私がやりたいことは、いくつかの並列/非同期タスクを開始しIterable<>
て、同じ反復子で反復処理することです。どのインターフェイスを使用すればよいか考えています。
to-be-determined インターフェイスを使用した実装例を次に示しますQuasiIteratorInterface
。
これが私の問題です:
hasNext() と next() には同期の問題があるため、直接使用しても意味がありません
Iterator
。hasNext() は、誰かが next() を呼び出す前に呼び出すと役に立ちません。を使いたいのです
Queue
が、必要な唯一の方法はpoll()
ConcurrentLinkedQueue を使用して多数の要素を保持したいのですが、要素を複数回反復処理する必要がある場合を除き、それを使用することはできません。
助言がありますか?
java - なぜこれほど多くのメソッドがIterableではなくCollectionを使用するのですか?
IEnumerable<T>
C#を使用することで、インターフェイスが大好きになりました。それだけを配り、取り入れたい場合がたくさんあります。さらに、.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
ます。対応する変更を行う
「エラーまたはアクセスできない型」というコンパイラ エラーが発生します。
どうしたの?誰かが回避策を提案できますか?