- 主题:怎么嵌套实现类似java stream的功能
java的写法灵活多了
myList.stream().map(x->foo(x)).filter(x->bar(x))...
python得用
map(lambda ..., myList)
filter(lambda .., myList)
嵌套用很不方便。
pyspark 有类似的针对rdd的操作
rdd.map().filter().distinct()
--
修改:iwannabe FROM 120.229.207.*
FROM 120.229.207.*
自己定义个类,把需要的方法返回值写成 return self
【 在 iwannabe 的大作中提到: 】
: java的写法灵活多了
: myList.stream().map(x->foo(x)).filter(x->bar(x))...
: python得用
: ...................
--
FROM 61.149.73.24
记得某大神曾经实现了一个管道操作,不知道以后能不能这么用
sth = pipe(mylist) | map(func1) | filter(func2) | transform(func3) ...
--
FROM 101.224.254.*
不过这么写应该更Pythonic
[foo(row) for row in my_list if bar(x)]
我觉得这么写比java 清楚多了
--
修改:Madlee FROM 101.224.254.*
FROM 101.224.254.*
用 foo(x) for x in l if bar(x) 更强。
而且 python 以这种形式传参时是迭代器,lazy evaluation 的。
【 在 iwannabe 的大作中提到: 】
: java的写法灵活多了
: myList.stream().map(x->foo(x)).filter(x->bar(x))...
: python得用
: ...................
--
FROM 110.81.0.*
java stream 也是,类似于pyspark rdd,前面只是计划,到最后才apply execute
【 在 hgoldfish 的大作中提到: 】
: 用 foo(x) for x in l if bar(x) 更强。
这种的问题就是没执行一个功能就要写一行,和lambda一样 ,而且每一步都有个中间结
果要保存
还是 rdd.map().filter().distinct() 这样看起来简洁
上面说的pipe挺好
: 而且 python 以这种形式传参时是迭代器,lazy evaluation 的。
--
修改:iwannabe FROM 119.139.199.*
FROM 119.139.199.*