副问题[/!--empirenews.page--]
本篇文章将具体先容理会式的根基要素及其各类情势。
![案例详解:领略Python中的“理会式”](http://img25.aspzz.cn/uploads/allimg/c190830/15C0bU35a0-1OQ.jpg)
Python中的理会式
理会式是应承在其他序列中构建序列的布局。Python 2.0先容了列表理会式的观念,Python 3.0中进一步先容了字典和荟萃理会式。
![Pyhon中的理会式范例 Pyhon中的理会式范例](http://img25.aspzz.cn/uploads/allimg/c190830/15C0bU3YP-295V.jpg)
Pyhon中的理会式范例
为什么理会式云云强盛?本文将通过一个例子试着领略这一点。各人都知道Python提供了各类表达列表的要领。譬喻:
可以明晰地将整件事写成:
- squares = [0, 1, 4, 9, 25]
可能,编写for轮回以建设列表:
- squares = []
- for num in range(6):
- squares.append(num*num)
建设列表的另一种要领是行使单行代码。
- squares = [num*num for num in range(6)]
上面的这个单行叫做列表理会式,是建设列表的便捷方法。它不再依靠轮回并精简了代码。下一部门将深入切磋列表的观念以及Python 3中提供的其他范例的理会式。
列表理会式
列表理会式是一种以简捷的方法在Python中界说和建设列表的要领。大大都环境下,列表理会式可以仅在一行代码中建设列表,无需担忧初始化列表或配置轮回。
列表理会式包罗以下几个部门:
![列表理会式的各个部门 列表理会式的各个部门](http://img25.aspzz.cn/uploads/allimg/c190830/15C0bU411Z-3M05.jpg)
列表理会式的各个部门
好比说,必要找到前五个偶数的平方。如上一节所示,有两种要领可以做到这一点:行使显式的for轮回或行使列表理会式。两种要领都试试看吧。
行使轮回:
- even_squares = []
- >>> for num in range(11):
- ... if num%2 == 0:
- ... even_squares.append(num * num)>>> even_squares
- [0, 4, 16, 36, 64, 100]
行使列表理会式:
- even_squares = [num * num for num in range(11) if num%2 == 0]
- even_squares
- [0, 4, 16, 36, 64, 100]
假如细心调查,可以看出只需从头分列For轮回就可以建设列表理会式。
![案例详解:领略Python中的“理会式”](http://img25.aspzz.cn/uploads/allimg/c190830/15C0bU45250-49229.jpg)
列表理会式是Python中对荟萃应用的一种标记暗示要领,就仿佛数学顶用到的荟萃暗示要领。
![案例详解:领略Python中的“理会式”](http://img25.aspzz.cn/uploads/allimg/c190830/15C0bU4TC0-5T51.jpg)
与数学中荟萃的相似性
一路实践实行并看一些在列表理会式辅佐下建设列表的例子吧。
缔造毕达哥拉斯三元数组
毕达哥拉斯三元数组由三个正整数a,b和c构成,并且a²+b²=c²。凡是这样的三元数组写成(a,b,c)的情势,譬喻(3,4,5)。
- [(a,b,c) for a in range(1,30) for b in range(1,30) for c in range(1,30)if a**2 + b**2 == c**2][(3, 4, 5), (4, 3, 5), (5, 12, 13), (6, 8, 10), (7, 24, 25), (8, 6, 10), (8, 15, 17), (9, 12, 15), (10, 24, 26), (12, 5, 13), (12, 9, 15), (12, 16, 20), (15, 8, 17), (15, 20, 25),(16, 12, 20), (20, 15, 25),(20, 21, 29), (21, 20, 29), (24, 7, 25), (24, 10, 26)]
带字符串的列表理会式
将字符串中的小写字母转换为大写字母。
- colors = ["pink", "white", "blue", "black", purple"]
- [color.upper() for color in colors]
- ['RED', 'GREEN', 'BLUE', 'PURPLE']
互换给定列表中的名和姓。
- presidents_usa = ["George Washington", "John Adams","Thomas Jefferson","James Madison","James Monroe","John Adams","Andrew Jackson"]split_names = [name.split(" ") for name in presidents_usa]
- swapped_list = [split_name[1] + " " + split_name[0] for split_name in split_names]swapped_list['Washington George', 'Adams John', 'Jefferson Thomas', 'Madison James', 'Monroe James', 'Adams John', 'Jackson Andrew']
含有元组的列表理会式
(编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|