Python | 巧用生成表达式、让循环显得高大上 !

 

 

 

 

 

Python资源共享群:626017123

在 Python 中使用生成表达式,有以下三点好处:

1. 提高代码运行速度

2. 简化代码,使代码显得更精炼

3. (重点)是你的代码看上去像“高手”所做

 

举例来说,如果我们想生成一个0~9数字的平方的列表,一种做法可能是这样的:

1l = []
2for i in range(10):
3    l.append(i**2)

 

而如果使用生成表达式的话就只需要一行代码:

In [24]: l = [i**2 for i in range(10)]
In [25]: l
Out[25]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

是不是很酷(装)炫(B)?

生成表达式也可以用来生成字典:

In [26]: {i:i**2 for i in range(10)}
Out[26]: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

 

在生成表达式中还可以使用条件判断。比如,我们想生成0~9中偶数的平方的列表:

In [27]: [i**2 for i in range(10) if i % 2 == 0]
Out[27]: [0, 4, 16, 36, 64]

 

还可以在生成表达式中使用两个变量:

In [28]: [i*j for i in range(3) for j in range(3)]Out[28]: [0, 0, 0, 0, 1, 2, 0, 2, 4]

 

下面我们来看个小案例,以下代码使用生成表达式来生成一副扑克牌。

1poker_color = ['黑桃','红桃','方块','梅花']
2poker_num = [str(i) for i in range(2,11)] + ['J','Q','K','A']
3pokers = [c + n for c in poker_color for n in poker_num] + ['大王','小王']

 

你可能感兴趣的:(Python,Python)