1.题目: 0~9这10个数字可以组成多少不重复的3位数?
2.源码:
[100 * x + 10 * y + z for x in xrange(1, 10) for y in xrange(10) for z in xrange(10) if (lambda a, b, c: (a - b) * (b - c) * (c - a))(x, y, z)]
3.思路: 迭代->两两比较.
点击查看更多内容
6人点赞
4 评论
共同学习,写下你的评论
Brook_StudyMachine
#coding=utf-8 def my_cmp(a,b,c): # 3个数互相减,没有相同就不会反回0 return (a-b)*(b-c)*(c-a) l=[] for x in xrange(1,10): for y in xrange(10): for z in xrange(10): if my_cmp(x,y,z): l.append(x*100+y*10+z) print l
搞懂了
第一次知道匿名函数可以这么用
>>> (lambda x,y:x+y)(3,5) 8
田树浩
有这么多:9*9*8=648
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
老师,用这种方法觉得怎样?
[x for x in xrange(100,1000) if (str(x)[0] != str(x)[1] and str(x)[1] != str(x)[2] and str(x)[0] != str(x)[2])]