Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30600
  • 博文数量: 4
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 47
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-12 22:53
文章分类
文章存档

2015年(2)

2014年(2)

我的朋友
最近访客

分类: Python/Ruby

2015-09-05 00:16:41

问题:利用简单的列表生成式,找出对称的 3 位数。例如,121 就是对称数,因为从右到左倒过来还是 121

方法1:print [(m * 100 + n * 10 + x) for m in range(1,10) for n in range(1,10) for x in range(1,10) if m == x]
方法2:print [int(str(m)+str(n)+str(m)) for m in range(1,10) for n in range(0,10) ]
方法3:print [n for n in range(100,1000) if str(n)[0] == str(n)[2]]

第一种属于容易想到的循规蹈矩的“笨”方法,第二和第三种方法有相似之处,都想到转化成字符串来判断,但第二种用的是单个字符转化并判断然后结合,第三种方法是基于字符串整体来做判断,个人更喜欢第三种思路。

欢迎补充!
阅读(2203) | 评论(0) | 转发(0) |
0

上一篇:用python递归函数解决汉诺塔问题

下一篇:没有了

给主人留下些什么吧!~~