列表推导式和字典推导式的逻辑

本文详细介绍了Python中的列表推导式和字典推导式的语法及应用实例,包括基本格式、条件语句的使用,并展示了它们与传统循环语句之间的等价转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表推导式

列表推导式即用可迭代对象,依次生成列表内元素的方式

语法

推导式

[表达式 for 变量 in 可迭代对象]
[表达式 for 变量 in 可迭代对象 if 条件表达式]

# 生成两个列表,list2加了要求x为偶数的条件
list1 = [x**3 for x in range(1,11)]
list2 = [x**3 for x in range (1,11) if x %2 == 0]

所得结果如图所示:
我们生成了两个列表,一个只有偶数,而另一个则是1-10的三次方

等价形式(推导式所包含逻辑)

k=0
for x in range(1,11):
    list1[k] = x**3
    k += 1
print(list1)


同理,第二个只消加入if条件即可,这就留给读者朋友来完成吧。

字典推导式

语法

也是为了生成所要求的字典形式,而设计的一种简单格式,其形式大致与列表类似

推导式

语法:
{键表达式:值表达式 for 变量 in 可迭代对象}
{键表达式:值表达式 for 变量 in 可迭代对象 (if 条件表达式)}

# 生成两个字典
names = ['张三','李四','王五']
ages = [23,33,43]
# zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包为一个个元组
dict1 = {name:age for name,age in zip(names,ages) }
print(dict1)

在这里插入图片描述

numbers = [1001, 1002, 1003, 1004]
names = ["Tom", 'David', 'Jesica', 'Jerry']
students = {numbers[i] : names[i] \
for i in range(4) \
if numbers[i] % 2 == 0}
print(students)

在这里插入图片描述

等价语法

numbers = [1001, 1002, 1003, 1004]
names = ["Tom", 'David', 'Jesica', 'Jerry']
for i in range(4):
    if numbers[i] % 2 == 0:
        students[numbers[i]] = names[i]
print(students)

在这里插入图片描述
本人小白 ,初次使用,如有不到之处望各位大佬指正!!!主要是为了加深自己的对知识点的印象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的加缪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值