0
jythonでJava 8ストリームとコレクションを試して、純粋なjythonで実装されたときに効率的かどうかを確認しようとしています。 「:2L、u'b」カウントJava 8 lambdasをJythonで使用する方法
from java.util.function import Function
from java.util import ArrayList
from java.util.stream import Collectors
letters = ArrayList(['a','b','a','c']);
cnt=letters.stream().collect(Collectors.groupingBy(Function.identity(),
Collectors.counting()))
辞書 {u'aとして
印刷CNT、私はいくつかの例で開始
(この上の任意のコメントにも感謝)それは可能性が私に起こります:1L、u'c ':1L}
これまでのところ良いです。次に、Javaのストリームでフィルタを使用する例を見つけました。
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
//get count of empty string
int count = strings.stream().filter(string -> string.isEmpty()).count();
これはどのようにjythonに変換されますか?特にどのようにjythonでstring - > sting.isEmpty()のようなJavaラムダ式を書くことができますか?
List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
//get count of empty string
int count = strings.stream().filter(string -> string.isEmpty()).count();
eqvivaletのJythonのは、になるであろう。ここで
は 'Predicate'オブジェクトを作成し、Stream.filter''にそれを渡します。矢印の構文は単なる構文的な砂糖です。その背後では、引数を持ち、 'ブール値'の結果を返す 'Predicate'オブジェクトを定義しています。 https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#filter-java.util.function.Predicate- – IceArdor
@iceArdorありがとう、質問に答えてくれました – suvy