问题:利用简单的列表生成式,找出对称的 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) |