字典推导式
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)生成器对象创建与列表推导式不同的地方就是,生成器推导式是用圆括号创建