gpt4 book ai didi

python相当于scala分区

转载 作者:太空狗 更新时间:2023-10-29 22:22:50 25 4
gpt4 key购买 nike

我目前正在将一些 Scala 代码移植到 Python,我想知道做类似于 Scala 的 partition 的事情的最 pythonic 方式是什么?特别是,在 Scala 代码中,我遇到这样一种情况,即根据我传入的某个过滤谓词返回 true 还是 false 对项目列表进行分区:

val (inGroup,outGroup) = items.partition(filter)

在 Python 中执行此类操作的最佳方法是什么?

最佳答案

使用过滤器(需要两次迭代):

>>> items = [1,2,3,4,5]
>>> inGroup = filter(is_even, items) # list(filter(is_even, items)) in Python 3.x
>>> outGroup = filter(lambda n: not is_even(n), items)
>>> inGroup
[2, 4]
>>> outGroup

简单循环:

def partition(item, filter_):
inGroup, outGroup = [], []
for n in items:
if filter_(n):
inGroup.append(n)
else:
outGroup.append(n)
return inGroup, outGroup

例子:

>>> items = [1,2,3,4,5]
>>> inGroup, outGroup = partition(items, is_even)
>>> inGroup
[2, 4]
>>> outGroup
[1, 3, 5]

关于python相当于scala分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com