1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 首先生成一个列表
>>> container=list(range(1,11))
>>> print(container)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 传统思路是对列表进行循环
>>> empty=[]
>>> for x in container:
... empty.append(x-1)
...
>>> empty
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 使用列表生成式,对每个元素直接处理
>>> [x-1 for x in container]
>>> [x-1 for x in range(1,11)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 后面还可以对元素进行条件判断,比如3的倍数才进行处理
>>> [x-1 for x in container if x%3==0]
[2, 5, 8]
# 还可以对多个`iterable`进行操作,如下可以生成两个集合的笛卡尔积
>>> [x+y for x in '123' for y in 'abc']
['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
# 同理可以将`dict`一次转为`list`
>>> dictVar={'1':'a','2':'b'}
>>> print(dictVar)
{'1': 'a', '2': 'b'}
>>> listVar=[k+'->'+v for k,v in dictVar.items()]
>>> listVar
['1->a', '2->b']
|