今天碰到一个小程序,正好可以用到Python的filter,map和reduce方法。感觉很有意思,顺便就写下来吧。问题是这样的:
两个小伙伴,数字214和77感觉自己的运气一直不好,想来想去,原来是和7有关,如下:
2+1+4=7 77%7=11 7%11=77
满足如下规则就是和7有关,
1. 本身是7的倍数 2. 数字里包含7 3. 数字各位累加时7的倍数
下一个小程序,计算出一定范围内和7不相关的数字的平方和。
题目很简单,可以用各种语言实现,这里的demo是Python实现的。
我们可以把这个过程分成这样几个步骤:
- 产生一定范围内的数字
- 去掉和7相关的数字
- 计算平方和
第一步很简单:
range(), 10以内的range(10), 即: [1,2,3,4,5,6,7,8,9]
第二部过滤:
filter(function or None, sequence) -> list, tuple, or string
reduce(function, sequence[, initial]) -> value
function如下:
def handle(num,noluck=7): if num %noluck==0: return False l = [string.atoi(x) for x in str(num)] for num in l: if num%noluck==0: return False if reduce(lambda x,y:x+y, l)%noluck==0: return False return True
这样去掉之后的结果是:filter(handle, range(10))
第三部是计算:
map(function, sequence[, sequence, ...]) -> list
reduce(lambda x,y: x+y, map(lambda x:x*x,filter(handle, range(10))))
这里还用到了lambda和表达式推导。是不是很有意思?只有真正玩python的人才知道其中好玩的地方 :-)
相关推荐
js函数中有三个在特定场合很好用的函数:...而数组经常用到的方法有push、join、indexOf、slice等等,但是有一个经常被我们忽略的方法:reduce,这个方法简直强大的不要不要的。下面通过这篇文章来一起学习学习吧。
3. **对象与数组**:对象创建与访问、数组方法(push、pop、shift、unshift、slice、splice、concat、join、map、filter、reduce等)。 4. **DOM操作**:获取元素(getElementById、getElementsByClassName、...
4. **数组操作**:涉及数组的方法,如map、filter、reduce、forEach等,用于数据处理和分析。 5. **对象和原型**:理解JavaScript中的对象和原型链,学习如何创建和操作对象,以及原型继承。 6. **函数式编程**:...
`reduce`函数用于对序列进行累积操作,例如累加或串联,它需要一个函数和一个可迭代对象,函数接受两个参数并返回单一结果,然后这些结果会不断应用到序列的元素上。 `sorted`函数也是高阶函数,它可以对任何可迭代...
例如,数组的操作(如map、filter、reduce)在处理数组类问题时尤其重要。同时,Swift的泛型允许编写通用的代码,可以处理多种类型的数据,这对于编写复用性强的算法模块非常有帮助。 闭包是Swift中的一大特色,它...
例如,JavaScript中的`Array.prototype.map`就是一个高阶函数,它接受一个函数作为参数,对数组的每个元素应用该函数,然后返回一个新的数组。 在互联网开发中,Lambda和高阶函数的应用非常广泛。比如,前端框架...
5. **函数式编程**:使用`map()`, `filter()`, `reduce()`等函数,以及lambda表达式和列表推导式。 6. **异常处理**:理解并使用try/except/finally语句进行错误处理。 7. **数据处理**:如果项目涉及数据分析,...
7. **map()**: `map()`函数接受一个函数和一个序列,将函数应用于序列的每个元素,返回一个新的序列。如`map(lambda x: x * 2, nums)`将数组`nums`中的每个元素都乘以2。 8. **filter()**: `filter()`函数根据提供...
2. **函数式编程**:Python支持函数式编程概念,如高阶函数、map()、filter()和reduce(),这在处理Project Euler问题时非常有用,特别是对于简化代码和进行数学操作。 3. **模块和库**:Python拥有丰富的标准库和第...
2. **函数式编程**:Python支持高阶函数,如map、filter和reduce,可以方便地处理序列和列表。 3. **模块与库**:Python有丰富的标准库和第三方库,如NumPy、Pandas和NetworkX,可以用于科学计算、数据分析和图算法...
6. **数组方法**:如push、pop、shift、unshift、slice、splice、concat、indexOf、forEach、map、filter、reduce等,熟练掌握这些方法能高效处理数组数据。 7. **事件处理**:JavaScript能够响应用户的交互,如...
7. **数组方法**:`map`、`filter`、`reduce`等数组方法可能用于处理游戏中的数组数据,比如计算相邻雷的数量。 【前端渲染】 1. **HTML布局**:创建游戏面板,使用`<table>`或CSS Grid布局,每个格子由一个单元格...
在PHP中处理矩阵或数组,开发者可能会用到内置的数组函数,如array_map()、array_filter()、array_reduce()等,以及可能自定义的类来实现矩阵的乘法、加法、转置等操作。如果MatrixMate是一个高级的库,它可能封装了...
例如,使用map、filter和reduce等方法处理数组。 9. **模块化** ES6引入了模块系统,允许我们将代码组织成模块,以提高代码复用性和可维护性。如果这个例子包含多个文件,那么可能演示了如何导入和导出模块。 10....
此外,Python还提供了其他高级工具,如lambda表达式、map()和reduce()函数,用于处理更复杂的数据筛选和操作。在实际应用中,可能会结合这些工具进行更复杂的筛选和转换,例如,对字典的键进行排序,或对列表中的...
总结一下,"js代码-10.3 限定组合"是一个关于使用JavaScript实现数组组合操作的问题,可能涉及到数组的高级方法如map、filter、reduce,以及递归和回溯算法。`main.js`是实现代码,`README.txt`是对代码的解释和使用...
函数式编程也可能有所体现,例如使用map、filter、reduce等高阶函数对数据进行处理。这些函数可以简化代码并减少副作用,使得代码更加简洁和易于测试。 考虑到这是一个实用程序,它可能还包括错误处理和异常捕获,...
4. 函数式编程:如map、filter、reduce等,有助于编写简洁高效的代码。 5. 多线程与多进程:在处理大数据时,通过并行化提高计算效率。 6. 错误和异常处理:确保程序在遇到问题时能够正常终止或提供反馈。 7. 模块和...
理解这些集合的特性和操作函数对于编写高效的代码至关重要,例如`filter`、`map`和`reduce`等函数。 学习Scala的数据结构,特别是数组和集合,有助于理解和实现各种算法,比如在大数据处理中常见的WordCount案例。...
例如,通过实现map、filter和reduce等抽象操作,学生可以理解如何通过函数来处理数据,而不是依赖于变量的状态。 “labs”可能包含了多个实验任务,每个任务都设计了不同的问题,旨在引导学生逐步探索函数式编程的...