Python中的列表生成式和多层表达式

                                             Python中的列表生成式和多层表达式

如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表?

1 L=[];
2 for x in range(1,11):
3     L.append(x*x)
4     print L
5 print ("+++++++++并不漂亮分割线之论缩进的重要性++++++++++")
6 print L

 

 

其实有一种更简单的写法,比如,你看:

print [x*x for x in range(1,11)]

 

 

略需要注意的就是需要把x*x放到for的前面,那如何想要得到其是1到10内是偶数的平方列表呢。这个应该如何,怎么,how to 搞?其实也很简单,加个判断就好,依旧一句代码搞定,不信,你看:

print [x*x for x in range(1,11) if x%2==0]

 

 

上面说的是生成列表式,然后说一下多层表达式。

比如,请用一行代码打印出Smartisan和索尼旗舰产品的名称。

print [m+n for m in'TZ'for n in'123']

 

最后写一个,找出对称的 3 位数。例如,101 就是对称数,百位数和个数是一样的。

print [100*n1+10*n2+n3 for n1 in range(1,10) for n2 in range(10) for n3 in range(10) if n1==n3]

 

似乎Python很简洁的样子。

posted @ 2015-08-29 19:08  公子若不胖天下谁胖  阅读(2038)  评论(0编辑  收藏  举报