Python 列表生成

生成器

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。

L = []

for x in range(1,11):
    L.append(x * x)

print(L)

得出

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是我们可以更简化些

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

print(T)

同样的效果

此外还可以进行判断

1
2
3
4
5
6
7
8
9
10
11
    L = [x*x for x in range(1,11) if x%2 ==0]

print(L)

```

输出结果

```python

[4, 16, 36, 64, 100]

例如还可以使用两层循环,可以生成全排列:

1
2
3
4
5
6
7
8
9
10
11
    L = [m + n for m in 'ABC' for n in 'XYZ']

print(L)
```


得到

```python

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

迭代器

判断对象是否可用被迭代

1
2
3
4
5
6
7
8
9
10
11
12
13

from collections import Iterable

print(isinstance('abc',Iterable)) // 返回布尔型
```

输出下标

```python

for i,value in enumerate(['A','B','C']):

print(i,value)

得到

1
2
3
0 A
1 B
2 C