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基于pillow判断图片完整性的方法
Sep 18 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
python使用udp实现聊天器功能
Dec 10 Python
Django用户认证系统 组与权限解析
Aug 02 Python
python3调用windows dos命令的例子
Aug 14 Python
Python TCP通信客户端服务端代码实例
Nov 21 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
Pytorch实验常用代码段汇总
Nov 19 Python
Python Socket多线程并发原理及实现
Dec 11 Python
python基于openpyxl生成excel文件
Dec 23 Python
python 中yaml文件用法大全
Jul 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统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
vue登录注册实例详解
2019/09/14 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
Element InputNumber计数器的使用方法
2020/07/27 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
python enumerate内置函数用法总结
2020/01/07 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
linux下进程间通信的方式
2014/12/23 面试题
2014年乡镇领导个人整改措施
2014/09/19 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
支行行长竞聘报告
2014/11/06 职场文书
助学感谢信范文
2015/01/21 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
python数据处理之Pandas类型转换
2022/04/28 Python