Python 推导式(Comprehension)是一种简洁、优雅的语法结构,允许使用单行代码快速创建列表、字典、集合或生成器。推导式基于现有的可迭代对象,通过表达式和条件语句来生成新的数据集合,不仅让代码更加简洁易读,而且较传统的循环方式执行效率更高。本文小编与大家分享 Python 推导式的相关知识。
Python 支持推导式包括:列表(list)推导式、字典(dict)推导式、集合(set)推导式和元组(tuple)推导式。
一、列表推导式
列表推导式是最为常见的形式,用于创建新的列表。其基本语法为:
(一)不带条件的列表推导式
编程示例如下:
在该编程示例中:
list1 = [x + 1 for x in range(100,110)]
[101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
(二)带条件的列表推导式
编程示例如下:
二、字典推导式
字典推导式用于创建字典,基本语法与列表推导式类似:
{键表达式 : 值表达式 for 变量in可迭代对象if条件}- for 变量 in 可迭代对象:使用变量遍历可迭代对象,并将变量传入到键表达式和值表达式中;
- if 条件(可选):条件语句,将符合条件的变量传入到键表达式和值表达式中。
|
使用一个例子说明字典推导式用法:将列表中各字符串值为键,各字符串的长度为值,组成键值对。编程示例如下:
三、集合推导式
集合推导式用于创建集合,会自动去除重复元素。其基本语法为:
下面以一个例子说明集合推导式用法:判断字符串中不是 abc 的字母并输出(注意:重复的集合元素会去除)。编程示例如下:
集合推导式和字典推导式在语法上非常相似,都使用大括号{}。区别在于,集合推导式中的表达式不包含键值对。
四、元组推导式
元组推导式(生成器推导式)和列表推导式的用法基本相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。基本语法为:
(表达式 for 变量 in 可迭代对象 if 条件) |
编程示例如下:
五、嵌套推导式
嵌套推导式是 Python 推导式的一种高级用法,其核心是将一个推导式嵌套在另一个推导式中,通常用于处理多维数据结构。例如,给定一个矩阵,可以通过嵌套推导式实现行列转换:
嵌套推导式在处理多维数组、矩阵操作以及复杂数据筛选时非常有用。但在使用时需要注意代码的可读性,避免过于复杂的嵌套导致难以理解。
六、推导式的优缺点和注意事项
(一)优缺点
(二)注意事项