python之列表推导式

创建列表

A=[   i for i in range(1,5)   ]
print(A) # 这是列表[1,2,3,4]

在这里插入图片描述
创建一个简单的多维列表

A=[   [i for i in range(1,j)] for j in range(1,6)   ] 
print(A)    # 根据最外面的for可以知道是列表A有5个元素
            # 同时每个元素都是一个列表
            # 列表里的元素根据 j 的值创建
            # j 为1 时,range(1,1)为空,所以第一个元素为空列表

结果为:
在这里插入图片描述
将起始位置也由 j 确定后,创建一个二维列表

A=[   [i for i in range(j,j+4)] for j in range(1,14,4)    ]
print(A)
# 这是一个 4*4 的二维列表    [ [ 1, 2, 3, 4],
# 第一维由 j 确定              [ 5, 6, 7, 8],
# 第二维由 i 确定              [ 9,10,11,12],
# 同时 i 关于 j                [13,14,15,16] ]

结果为:
在这里插入图片描述
同样的反过来运用就能将二维列表降维

A=[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
B=[   j for i in A for j in i    ]    
print(B)

结果为:
在这里插入图片描述
将两个列表的元素 一 一对应

A=['k1','k2','k3']
B=['v1','v2','v3']
D=[   {i:B[A.index(i)]} for i in A   ]
# A.index(i)即 i 在列表A 里的索引
print(D)

结果为:
在这里插入图片描述

### Python 列表推导式的用法与结构 #### 基本概念 列表推导式(List Comprehensions)是 Python 中的一种简洁语法,用于从现有可迭代对象中快速生成新的列表。相比于传统的循环语句,列表推导式不仅减少了代码量,还提高了执行效率[^5]。 --- #### 语法结构 列表推导式的基本形式如下: ```python [expression for item in iterable if condition] ``` - `expression`: 表达式,指定如何转换当前元素。 - `item`: 可迭代对象中的单个元素。 - `iterable`: 已有的可迭代对象(如列表、元组、字符串等)。 - `if condition` (可选): 条件判断,仅保留满足条件的元素。 --- #### 示例:基本列表推导式 以下是一个简单的例子,演示如何使用列表推导式生成平方数列表: ```python numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # 输出: [1, 4, 9, 16, 25] ``` --- #### 示例:带条件的列表推导式 可以加入条件过滤掉不满足需求的元素。例如,只保留偶数的平方: ```python even_squares = [x**2 for x in numbers if x % 2 == 0] print(even_squares) # 输出: [4, 16] ``` --- #### 示例:多层嵌套的列表推导式 对于复杂的嵌套数据结构,也可以通过嵌套的方式实现扁平化或其他操作。例如,给定一个多维数组,将其展平为一维数组: ```python matrix = [[1, 2], [3, 4], [5, 6]] flattened = [num for row in matrix for num in row] print(flattened) # 输出: [1, 2, 3, 4, 5, 6] ``` --- #### 示例:使用多个可迭代对象 如果需要同时遍历两个或更多可迭代对象,可以通过 `zip()` 函数实现同步迭代。例如,将两列表中的元素相加: ```python list1 = [1, 2, 3] list2 = [4, 5, 6] sum_list = [a + b for a, b in zip(list1, list2)] print(sum_list) # 输出: [5, 7, 9] ``` --- #### 示例:复杂表达式 可以在 `expression` 部分编写更复杂的逻辑。例如,将字符串列表中的每个单词首字母大写: ```python words = ['apple', 'banana', 'cherry'] capitalized_words = [word.capitalize() for word in words] print(capitalized_words) # 输出: ['Apple', 'Banana', 'Cherry'] ``` --- #### 数据清洗中的应用 列表推导式常用于清理和预处理原始数据。例如,去除字符串列表中的空白字符并转为小写: ```python raw_data = [" Apple ", "BANANA ", " cherry"] cleaned_data = [word.strip().lower() for word in raw_data] print(cleaned_data) # 输出: ['apple', 'banana', 'cherry'] ``` --- #### 性能优势 列表推导式相较于普通的 `for` 循环具有更高的执行效率,因为它是以内置 C 语言的速度运行的。这种特性使得它非常适合大规模数据处理任务。 --- ### 注意事项 尽管列表推导式功能强大,但在涉及极其复杂的逻辑时可能会降低代码的可读性。此时应考虑拆分为常规函数调用或多步操作[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值