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常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
python opencv实现运动检测
Jul 10 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
Python并发:多线程与多进程的详解
Jan 24 Python
Python编写合并字典并实现敏感目录的小脚本
Feb 26 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
如何基于线程池提升request模块效率
Apr 18 Python
基于python生成英文版词云图代码实例
May 16 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 Python
python如何利用cv2模块读取显示保存图片
Jun 04 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中变量及部分适用方法
2008/03/27 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
js电话号码验证方法
2015/09/28 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
Vue实现日历小插件
2019/06/26 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python基于time模块求程序运行时间的方法
2017/09/18 Python
Python文件操作基本流程代码实例
2017/12/11 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python如何在bool函数中取值
2020/09/21 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
旅游管理实习自我鉴定
2013/09/29 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
团日活动总结范文
2014/04/25 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
2016高考寄语集锦
2015/12/04 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS