加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

案例详解:理解Python中的“解析式”

发布时间:2019-08-30 03:22:41 所属栏目:建站 来源:读芯术
导读:本篇文章将具体先容理会式的根基要素及其各类情势。 Python中的理会式 理会式是应承在其他序列中构建序列的布局。Python 2.0先容了列表理会式的观念,Python 3.0中进一步先容了字典和荟萃理会式。 Pyhon中的理会式范例 为什么理会式云云强盛?本文将通过一
副问题[/!--empirenews.page--]

本篇文章将具体先容理会式的根基要素及其各类情势。

案例详解:领略Python中的“理会式”

Python中的理会式

理会式是应承在其他序列中构建序列的布局。Python 2.0先容了列表理会式的观念,Python 3.0中进一步先容了字典和荟萃理会式。

Pyhon中的理会式范例

Pyhon中的理会式范例

为什么理会式云云强盛?本文将通过一个例子试着领略这一点。各人都知道Python提供了各类表达列表的要领。譬喻:

可以明晰地将整件事写成:

  1. squares = [0, 1, 4, 9, 25] 

可能,编写for轮回以建设列表:

  1. squares = [] 
  2. for num in range(6): 
  3.     squares.append(num*num) 

建设列表的另一种要领是行使单行代码。

  1. squares = [num*num for num in range(6)] 

上面的这个单行叫做列表理会式,是建设列表的便捷方法。它不再依靠轮回并精简了代码。下一部门将深入切磋列表的观念以及Python 3中提供的其他范例的理会式。

列表理会式

列表理会式是一种以简捷的方法在Python中界说和建设列表的要领。大大都环境下,列表理会式可以仅在一行代码中建设列表,无需担忧初始化列表或配置轮回。

列表理会式包罗以下几个部门:

列表理会式的各个部门

列表理会式的各个部门

好比说,必要找到前五个偶数的平方。如上一节所示,有两种要领可以做到这一点:行使显式的for轮回或行使列表理会式。两种要领都试试看吧。

行使轮回:

  1. even_squares = [] 
  2. >>> for num in range(11): 
  3. ...    if num%2 == 0: 
  4. ...        even_squares.append(num * num)>>> even_squares 
  5. [0, 4, 16, 36, 64, 100] 

行使列表理会式:

  1. even_squares = [num * num for num in range(11) if num%2 == 0] 
  2. even_squares 
  3. [0, 4, 16, 36, 64, 100] 

假如细心调查,可以看出只需从头分列For轮回就可以建设列表理会式。

案例详解:领略Python中的“理会式”

列表理会式是Python中对荟萃应用的一种标记暗示要领,就仿佛数学顶用到的荟萃暗示要领。

案例详解:领略Python中的“理会式”

与数学中荟萃的相似性

一路实践实行并看一些在列表理会式辅佐下建设列表的例子吧。

缔造毕达哥拉斯三元数组

毕达哥拉斯三元数组由三个正整数a,b和c构成,并且a²+b²=c²。凡是这样的三元数组写成(a,b,c)的情势,譬喻(3,4,5)。

  1. [(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)] 

带字符串的列表理会式

将字符串中的小写字母转换为大写字母。

  1. colors = ["pink", "white", "blue", "black", purple"] 
  2. [color.upper() for color in colors] 
  3. ['RED', 'GREEN', 'BLUE', 'PURPLE'] 

互换给定列表中的名和姓。

  1. 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] 
  2. 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'] 

含有元组的列表理会式

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读