gpt4 book ai didi

Java 等同于 Python 的 itertools.groupby()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:04 24 4
gpt4 key购买 nike

这是 itertools.groupby() 的示例用例在 Python 中:

from itertools import groupby

Positions = [ ('AU', '1M', 1000),
('NZ', '1M', 1000),
('AU', '2M', 4000),
('AU', 'O/N', 4500),
('US', '1M', 2500),
]

FLD_COUNTRY = 0
FLD_CONSIDERATION = 2

Pos = sorted(Positions, key=lambda x: x[FLD_COUNTRY])
for country, pos in groupby(Pos, lambda x: x[FLD_COUNTRY]):
print country, sum(p[FLD_CONSIDERATION] for p in pos)

# -> AU 9500
# -> NZ 1000
# -> US 2500

在 Java 中是否有任何语言构造或库支持能够或可以实现上述 itertools.groupby() 的功能?

最佳答案

最接近的可能在 Apache Functor 中.看看Examples of Functors, Transformers, Predicates, and Closures in Java你会在哪里找到一个例子。

顺便说一句 - 不要期望在 Python 中看到类似的东西,这些东西在 2-3 行代码中实现。 Java 并未被设计为具有良好功能特性的语言。它根本不像脚本语言那样包含大量语法糖。 Maybe in Java 8 will see more of these things coming together .这就是 Scala 出现的原因,see this question我前段时间做的,在那里我得到了非常好的相关答案。正如您在我的问题中看到的那样,在 Python 中实现递归函数比在 Java 中要好得多。 Java 有很多好的特性,但函数式编程绝对不是其中之一。

关于Java 等同于 Python 的 itertools.groupby()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688396/

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