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中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python实现的矩阵类实例
Aug 22 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
TensorFlow实现卷积神经网络
May 24 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
pycharm的python_stubs问题
Apr 08 Python
python实现从ftp上下载文件的实例方法
Jul 19 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
详解Django rest_framework实现RESTful API
2018/05/24 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
关于元旦的广播稿
2014/02/16 职场文书
《日月潭》教学反思
2014/02/28 职场文书
财务科科长岗位职责
2014/03/10 职场文书
男女朋友协议书
2014/04/23 职场文书
银行贷款委托书范本
2014/10/11 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
大学生在校表现评语
2014/12/31 职场文书
同学聚会邀请函
2015/01/30 职场文书
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫