Python一句代码实现找出所有水仙花数的方法


Posted in Python onNovember 13, 2018

水仙花数是指一个 3位正整数,它的每个位上的数字的 3 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

下面用一句代码实现找出所有的水仙花数:

方法一:

>>> 
>>> a = list(map(lambda x: x[1], filter(lambda x: x[0], [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)])))
>>> print(a)
[153, 370, 371, 407]
>>>

说明:

上面的代码可以分解三句代码:

a = [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)]
b = filter(lambda x: x[0], a)
c = list(map(lambda x: x[1], b))

第一句表示用列表推到遍历所有的三位数,每个数都打上标记,是水仙花数着标记True,不是则标记False,标记和数放到一个元祖:(flag, value),所有元组放在一个list结构里。

第二句表示筛选出标记为True的元组。

第三句表示把第一句筛选出来的元组的第二个值放到list结构里。

加上print语句,执行一遍上面三句代码即可明白。

方法二:

只用列表推导。

>>> a = [i**3+j**3+k**3 for i in range(1, 10) for j in range(0, 10) for k in range(0, 10) if i*100+j*10+k == i**3+j**3+k**3]
>>> print(a)
[153, 370, 371, 407]
>>>

以上这篇Python一句代码实现找出所有水仙花数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中os操作文件及文件路径实例汇总
Jan 15 Python
Python实现简单的四则运算计算器
Nov 02 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python实现停车管理系统
Nov 30 Python
Python离线安装PIL 模块的方法
Jan 08 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
python实现布隆过滤器及原理解析
Dec 08 Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
python中setuptools的作用是什么
Jun 19 Python
Python importlib模块重载使用方法详解
Oct 13 Python
python简易实现任意位数的水仙花实例
Nov 13 #Python
python找出完数的方法
Nov 12 #Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 #Python
浅谈Python的list中的选取范围
Nov 12 #Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 #Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 #Python
使用python将时间转换为指定的格式方法
Nov 12 #Python
You might like
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
你真的了解BOM中的history对象吗
2017/02/13 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
python微信好友数据分析详解
2018/11/19 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python变量的作用域是什么
2020/05/26 Python
解释一下钝化(Swap out)
2016/12/26 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
中文系师范生自荐信
2013/10/01 职场文书
2014年元旦感言
2014/03/06 职场文书
大学开学计划书
2014/04/30 职场文书
卫生系统先进事迹
2014/05/13 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
工地材料员岗位职责
2015/04/11 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang