Python基础知识之推导式详解

2023-12-08 0 197
目录
  • 1、前言
  • 2、列表推导式
  • 3、集合推导式
  • 4、字典推导式
  • 5、元组推导式

1、前言

Python推导式(Comprehension)是一种简洁高效的代码编写方式,可以用一行代码来创建列表、集合、字典等复杂数据结构。

Python基础知识之推导式详解

Python的推导式主要有以下三种类型:列表推导式、集合推导式和字典推导式。

Python 没有元组推导式。元组是不可变的数据类型,它们通常用于存储多个不同类型的元素。与列表和字典不同,元组没有推导式。

虽然没有元组推导式,但是可以通过生成器表达式生成元组。

2、列表推导式

列表推导式(List comprehension)是一种在Python中快速创建列表的方法。

它的基本语法为:

[ expression for item in iterable if condition ]

expression 是要生成的列表元素的表达式,item 是迭代变量,iterable 是一个可迭代对象,例如列表、元组、字符串、字典等,condition 是可选的条件表达式,用于筛选符合条件的元素。

我们可以用列表推导式来生成一个包含1到10的平方的列表:

squares = [x**2 for x in range(1, 11)]
print(squares)

Python基础知识之推导式详解

还可以在列表推导式中添加条件表达式,例如筛选出所有偶数的平方:

squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squares)

Python基础知识之推导式详解

3、集合推导式

集合推导式(Set comprehension)是一种在Python中快速创建集合的方法。它的基本语法与列表推导式类似,只是用大括号 {} 来代替中括号 [],例如:

squares = {x**2 for x in range(1, 11)}
print(squares)

Python基础知识之推导式详解

4、字典推导式

字典推导式(Dictionary comprehension)是一种在Python中快速创建字典的方法。

它的基本语法为:

{key_expression: value_expression for expression in iterable if condition}

key_expression 是字典键的表达式,value_expression 是字典值的表达式,expression 是迭代变量,iterable 是一个可迭代对象,例如列表、元组、字符串、字典等,condition 是可选的条件表达式,用于筛选符合条件的元素。

我们可以用字典推导式来生成一个将数字转换为其平方的字典:

squares = {x: x**2 for x in range(1, 11)}
print(squares)

Python基础知识之推导式详解

在字典推导式中也可以添加条件表达式,来实现筛选符合条件的键值对。例如,如果我们想要从一个字典中筛选出所有键是偶数的键值对,我们可以这样实现:

original_dict = {1: \’apple\’, 2: \’banana\’, 3: \’orange\’, 4: \’pear\’}
new_dict = {key: value for key, value in original_dict.items() if key % 2 == 0}
print(new_dict)

Python基础知识之推导式详解

我们使用了条件表达式 if key % 2 == 0 来判断键是否为偶数。只有符合条件的键值对才会被添加到新的字典中。

5、元组推导式

Python 中并不存在元组推导式。元组是不可变的序列类型,它们通常是用来存储不可变的数据,例如一些常量或固定的配置信息。虽然你可以使用生成器表达式或 map 函数对元组中的元素进行处理,但是它们并不是元组推导式,因为它们返回的是生成器或迭代器对象,而不是元组对象。

虽然没有元组推导式,但是可以通过生成器表达式生成元组,具体的实现方式如下所示:

a = (x for x in range(1,10)) # 生成器表达式
tuple(a) # 使用 tuple() 函数将生成器转换为元组

Python基础知识之推导式详解

首先通过生成器表达式 (x for x in range(1,10)) 创建了一个生成器对象 a,然后通过 tuple() 函数将其转换为元组 (1, 2, 3, 4, 5, 6, 7, 8, 9),最终得到一个包含整数 1 到 9 的元组。

到此这篇关于Python基础知识之推导式详解的文章就介绍到这了,更多相关Python推导式内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • Python的列表推导式实例详细解析
  • Python使用列表推导式快速生成列表
  • 深入理解Python内置函数mapfilterreduce及与列表推导式对比
  • Python推导式之字典推导式和集合推导式使用体验
  • Python列表推导式的基本操作详解

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Python Python基础知识之推导式详解 https://www.u-9.cn/jiaoben/python/145201.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务