要生成[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'
]