python—列表生成式

要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?
方法一是循环:
>>> L = []
>>> for x in range( 1 , 11 ):
... L.append(x * x)
...
>>> L
[ 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100 ]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range( 1 , 11 )]
[ 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100 ]
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。

列表生成式也可以使用两个变量来生成list:
>>> d = { 'x' : 'A' , 'y' : 'B' , 'z' : 'C' }
>>> [k + '=' + v for k, v in d.items()]
[ 'y=B' , 'x=A' , 'z=C' ]
最后把一个list中所有的字符串变成小写:
>>> L = [ 'Hello' , 'World' , 'IBM' , 'Apple' ]
>>> [s.lower() for s in L]
[ 'hello' , 'world' , 'ibm' , 'apple' ]

你可能感兴趣的:(Python)