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去除列表中重复元素的方法
Mar 20 Python
python比较2个xml内容的方法
May 11 Python
在Python的Django框架下使用django-tagging的教程
May 30 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python smtplib实现发送邮件功能
May 22 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
Python统计时间内的并发数代码实例
Dec 28 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
python时间time模块处理大全
Oct 25 Python
Python try except else使用详解
Jan 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
20个PHP常用类库小结
2011/09/11 PHP
PHP中的替代语法介绍
2015/01/09 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
jQuery的框架介绍
2016/05/11 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
小程序实现搜索框
2020/06/19 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python中遍历文件的3个方法
2014/09/02 Python
python实现网站的模拟登录
2016/01/04 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
详解python中的装饰器
2018/07/10 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
python中的错误如何查看
2020/07/08 Python
python3爬虫中异步协程的用法
2020/07/10 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
八年级物理教学反思
2014/01/19 职场文书
物理研修随笔感言
2014/02/14 职场文书
十八大观后感
2015/06/12 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android