我主要使用Java编程,但是我觉得在数据分析方面Python更加方便。 我正在寻找一种类似于Java流的操作方式。例如,我想做类似于以下代码的操作(我混用了Java和Python语法)。
(key, value) = Files.lines(Paths.get(path))
.map(line -> new Angle(line))
.filter(angle -> foo(angle))
.map(angle -> (angle, cosine(angle)))
.max(Comparator.comparing(Pair::getValue)
在这里,我将从文件中提取一系列行,将每行转换为一个角度对象,通过某些参数过滤角度,然后创建一组成对的列表,并最终找到最大的一对。除此之外可能还有其他多个操作,但重点是这是一个管道,将一个操作的输出传递到下一个操作。
我知道Python列表推导式,但它们似乎仅限于单个“map”和单个“filter”。如果我需要使用推导式来连接多个映射,则表达式很快就会变得复杂(我需要将一个推导式放在另一个推导式内)。
在Python中是否有语法结构允许在一个命令中添加多个操作?