- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
你能通过使用 map 和/或 reduce 函数使它更像 pythonic 吗?它只是对每对连续数字的乘积求和。
topo = (14,10,6,7,23,6)
result = 0
for i in range(len(topo)-1):
result += topo[i]*topo[i+1]
最佳答案
这是我能想到的最好的方式:
import operator
sum(map(operator.mul, topo[:-1], topo[1:]))
编辑:我刚刚发现有更好的方法来做到这一点:
import operator
import itertools
def pairwise(iterable):
a, b = itertools.tee(iterable)
next(b, None)
return a, b
def sum_products(l):
return sum(itertools.imap(operator.mul, *pairwise(l)))
成对函数归功于 itertools 文档。
这更快并且使用更少的内存。当然,它不够简洁。
关于python - 这可以写成 python reduce 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924828/
在 Erlang 中,使用 =>要比较两个变量会导致语法错误,您必须使用 >=反而: 1> 10 => 5. * 1: syntax error before: '>' 2> 10 >= 5. tru
在少数情况下,日期写为“created ca.”。 1858-60',人类读者会将其理解为“约 1858-1860 年创建”。 因此,想象两个代表年的整数。 a = 1858 b = 60 我希望能够
是否可以用经典的 asp 写出我得到的带有字母的输出整数? 例如,如果我的结果是 5,我想输出“五” 或者如果是二十,我需要它显示“二十” 结果可能是无限的,因此编写一个用于查找目的的数组是行不通的。
这就是我正在做的,我读取了一个 .mp3 文件,以这种方式将其转换为 Base64String: using (fileStream) {
是否有任何算法可以找出有多少种方法可以写出一个数字,例如 n ,其总和为 2 ? 例如:对于 4 有四种方法: 4 = 4 4 = 2 + 2 4 = 1 + 1 + 1 + 1 4 = 2 + 1
我正在尝试 transform()一个Dataset在 Java 中如下所示: Function1,Dataset> withDoubled = (Dataset numbers) -> number
这个问题在这里已经有了答案: Convert integer to hexadecimal and back again (11 个答案) 关闭 7 年前。 在 c# 中,我将错误代码定义为 pub
如何使用 Flink 将 DataSet 作为 Parquet 文件写入 s3 bucket。是否有像 spark 这样的直接函数:DF.write.parquet("write in parquet
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 3 年前。 Improve
在CLRS中,作者通过以下伪代码介绍了红黑树中的旋转操作: LEFT-ROTATE(T, x) y = x.right # Line 1 x.right = y.left
我是一名优秀的程序员,十分优秀!