列表推导(list comprehension)

列表推导(list comprehension)是Python中一种非常强大且简洁的方式来创建列表。以下是一些列表推导的样例:

1. 简单的数字列表

创建一个包含0到9的平方的列表。

squares = [x**2 for x in range(10)]
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2. 带条件的列表推导

创建一个包含0到9中偶数的平方的列表。

even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)  # 输出: [0, 4, 16, 36, 64]

3. 使用函数的列表推导

创建一个列表,包含0到9中每个数字的阶乘。

import math
factorials = [math.factorial(x) for x in range(10)]
print(factorials)  # 输出: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]

4. 使用多个循环的列表推导

创建一个列表,包含两个列表中所有元素对的组合。

list_a = [1, 2]
list_b = [3, 4]
combinations = [(a, b) for a in list_a for b in list_b]
print(combinations)  # 输出: [(1, 3), (1, 4), (2, 3), (2, 4)]

5. 字典推导转换为列表

创建一个包含字典中所有值的列表。

my_dict = {'a': 1, 'b': 2, 'c': 3}
values_list = [value for key, value in my_dict.items()]
print(values_list)  # 输出: [1, 2, 3]

6. 列表推导嵌套

创建一个列表,包含0到2中每个数字与0到2中每个数字相乘的结果。

multiplication_table = [[x * y for y in range(3)] for x in range(3)]
print(multiplication_table)  # 输出: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]

在Python中的列表推导,for循环是从左到右顺序执行的。首先执行的是最外层的for循环,也就是 for x in range(3)。这个循环首先迭代 x 的值,对于每一个 x 的值,它将执行内部的列表推导 [x * y for y in range(3)]。
注意,如果发生嵌套,先执行外层,然后从左往右

7.列表转为字典

products = [
    (143121312, 100), 
    (432314553, 30),
    (32421912367, 150) 
]

# 使用字典推导式将元组列表转换为字典
products_dict = {product[0]: product[1] for product in products}
# 或者
products_dict = dict(products)

print(products_dict)

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值