主页 > 软件开发  > 

推导式

推导式

章节目录: 一、概述二、列表推导式2.1 格式2.2 示例 三、字典推导式3.1 格式3.2 示例 四、集合推导式4.1 格式4.2 示例 五、元组推导式(生成器表达式)5.1 格式5.2 示例 六、结束语

一、概述

Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。

Python 支持各种数据结构的推导式: 列表(list)推导式。字典(dict)推导式。集合(set)推导式。元组(tuple)推导式。 二、列表推导式 2.1 格式 列表推导式格式为: [表达式 for 变量 in 列表] [out_exp_res for out_exp in input_list] 或者 [表达式 for 变量 in 列表 if 条件] [out_exp_res for out_exp in input_list if condition] out_exp_res:列表生成元素表达式,可以是有返回值的函数。for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。if condition:条件语句,可以过滤列表中不符合条件的值。 2.2 示例 过滤掉长度大于 3 的字符串列表,并将剩下的字符转换成大写字母: elements = ["aaa", "bbbb", "Cc", "ddDddd"] new_elements = [e.upper() for e in elements if len(e) <= 3] print(new_elements) # ['AAA', 'CC'] 保留 30 以内可以被 3 整除的整数: # 准备一个 0 ~ 30 的列表。 nums = list(range(31)) # 保留能整除 3 的数字。 new_nums = [i for i in nums if i % 3 == 0] print(new_nums) # [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30] 三、字典推导式 3.1 格式 字典推导式格式为: { key_expr: value_expr for value in collection } 或者 { key_expr: value_expr for value in collection if condition } 3.2 示例 将字典的键转化为大写: # 创建一个以姓名:年龄为键值对的字典。 items = {"jan": 18, "rose": 21, "jack": 32} # 将 key 转化为大写。 mew_items = {key.upper(): items.get(key) for key in items} print(mew_items) # {'JAN': 18, 'ROSE': 21, 'JACK': 32} 给定几个数字,将它们自身的平方作为值进行字典创建: items = {num: (num ** 2) for num in (2, 3, 4)} print(items) # {2: 4, 3: 9, 4: 16} 四、集合推导式 4.1 格式 集合推导式基本格式: { expression for item in Sequence } 或者 { expression for item in Sequence if conditional } 4.2 示例 将给定的数字都加 1,添加到 set 集: nums = {num + 1 for num in (1, 2, 3)} print(nums) # {2, 3, 4} 五、元组推导式(生成器表达式)

元组推导式可以利用 range() 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。

5.1 格式 元组推导式基本格式: (expression for item in Sequence ) 或者 (expression for item in Sequence if conditional ) 元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 ( ) 圆括号将各部分括起来,而列表推导式用的是中括号 [ ],另外元组推导式返回的结果是一个生成器对象。 5.2 示例 创建一个由 5 以内数字组成的元组: nums = (num for num in range(5)) # 返回的是一个生成器对象。 print(nums) # <generator object <genexpr> at 0x000001ED30CE5220> # 使用 tuple() 函数将生成器对象转化为元组。 print(tuple(nums)) # (0, 1, 2, 3, 4) 六、结束语

“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶。

标签:

推导式由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“推导式