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实现实例
Apr 26 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python reduce()函数的用法小结
Nov 15 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
Python基于scipy实现信号滤波功能
May 08 Python
wxPython实现文本框基础组件
Nov 18 Python
python连接mongodb集群方法详解
Feb 13 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
如何搭建pytorch环境的方法步骤
May 06 Python
Python 合并拼接字符串的方法
Jul 28 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
详解javascript函数的参数
2015/11/10 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
zbar解码二维码和条形码示例
2014/02/07 Python
Python开发的实用计算器完整实例
2017/05/10 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
详解python中的数据类型和控制流
2019/08/08 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
一道Delphi上机题
2012/06/04 面试题
青年创业培训欢迎词
2014/01/10 职场文书
2014全年工作总结
2014/11/27 职场文书
关于幸福的感言
2015/08/03 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
Java 写一个简单的图书管理系统
2022/04/26 Java/Android