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使用cStringIO实现临时内存文件访问的方法
Mar 26 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
如何基于python实现脚本加密
Dec 28 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
python使用建议与技巧分享(一)
Aug 17 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Python正则表达式的使用范例详解
2014/08/08 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python NumPy库安装使用笔记
2015/05/18 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
python 自动重连wifi windows的方法
2018/12/18 Python
python抖音表白程序源代码
2019/04/07 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
留学自荐信
2013/10/10 职场文书
小学英语教学反思案例
2014/02/04 职场文书
搞笑创意广告语
2014/03/17 职场文书
学校安全责任书
2014/04/14 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
SQL Server中搜索特定的对象
2022/05/25 SQL Server