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 生成不重复的随机数的代码
May 15 Python
python实现提取百度搜索结果的方法
May 19 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
Python进程间通信Queue实例解析
Jan 25 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
python统计中文字符数量的两种方法
Jan 31 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
django中SMTP发送邮件配置详解
Jul 19 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
详解python对象之间的交互
Sep 29 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 30 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模板之Phpbean的目录结构
2008/01/10 PHP
PHP编码转换
2012/11/05 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
python中实现控制小数点位数的方法
2019/01/24 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
会计专业应届生自荐信
2014/02/07 职场文书
宣传普通话标语
2014/06/27 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android