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 相关文章推荐
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 Python
Python中的pprint模块
Nov 27 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
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
PHP中的Memcache详解
2014/04/05 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
微信小程序实现页面浮动导航
2019/01/28 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python中optparser库用法实例详解
2018/01/26 Python
python3学生名片管理v2.0版
2018/11/29 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
Java工程师面试集锦之Spring框架
2013/06/16 面试题
做一个有道德的人活动实施方案
2014/08/23 职场文书
中学生检讨书范文
2014/11/03 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
MySQL如何使备份得数据保持一致
2022/05/02 MySQL