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 相关文章推荐
用map函数来完成Python并行任务的简单示例
Apr 02 Python
Python使用wxPython实现计算器
Jan 30 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
Python简单基础小程序的实例代码
Apr 28 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
利用python实现后端写网页(flask框架)
Feb 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
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
师范毕业生求职自荐信
2013/09/25 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
领导新年致辞2016
2015/07/29 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python