ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-08-24 15:40:54  阅读:254  来源: 互联网

标签:25 10 Python 生成 range Out 表达式 巧用


 

 

 

 

 

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] + ['大王','小王']

 

标签:25,10,Python,生成,range,Out,表达式,巧用
来源: https://blog.csdn.net/Pythoncxy/article/details/100052779

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有