自学Python之旅记录-python中的各种推导式

字典推导式

 
1.字典推导式小案例
 
# 字典的键值对换
dicts = {"a_key":"a_value", "b_key":"b_value", "c_key":"c_value"}
new_dicts = {v:k for k,v in dicts.items()}
print(new_dicts)
{'a_value': 'a_key', 'b_value': 'b_key', 'c_value': 'c_key'}
 
 
# 根据可迭代的list对象构建字典
name_age_list = [("小王",18), ("小张",24), ("小李", 20)]
name_age_dict = {name:age for name,age in name_age_list}
print(name_age_dict)
{'小王': 18, '小张': 24, '小李': 20}
 
# 以一个set集合中的值作为key,以3倍的key作为值构建一个字典
set_object = (1, 2, 3, 4, 5)
dict_object = {x:x*3 for x in set_object}
print(dict_object)
{1: 3, 2: 6, 3: 9, 4: 12, 5: 15}
 
 

集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
例:
squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: set([1, 4])
 
 

生成器推导式

 
1、概念
 
(1)生成器推导式的结果是一个生成器对象,而不是列表,也不是元组。
 
(2)使用生成器对象的元素时,可以根据需要将其转化为列表或元组。
 
(3)可以使用__next__()或者内置函数访问生成器对象,但不管使用何种方法访问其元素,当所有元素访问结束以后,如果需要重新访问其中的元素,必须重新创建该生成器对象。即生成器的对象好比一份蛋糕,第一个人吃完了就没了,必须重新制作另外一个蛋糕。
 
(4)生成器对象创建与列表推导式不同的地方就是,生成器推导式是用圆括号创建
 

生成器推导式可以直接作为函数的传入参数

例如:

>>> sum(i for i in range(100) if i % 2)

2500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值