列表推导式用途
1 生成一个列表
2 借助函数完成复杂逻辑运算
odd_list = [i for i in range(34) if i%2==1]
print(odd_list)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33]
#2 借助函数完成复杂逻辑运算
def double(it):
return it*it
double_odd_list = [double(i) for i in range(34) if i%2 == 1]
print(double_odd_list)
[1, 9, 25, 49, 81, 121, 169, 225, 289, 361, 441, 529, 625, 729, 841, 961, 1089]
生成器
生成器是用推导式生成一个可以迭代的对象
生成器是可以转化为一个list的
odd_gen = (i for i in range(34) if i%2==1)
for i in odd_gen:
print(i)
print("生成器打印出元素之后,转成列表")
odd_gen_list = list(odd_gen)
print(odd_gen_list)
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
生成器打印出元素之后,转成列表
[]
生成器只有一个;把它变成列表或者迭代之后,生成器就是空的了
#字典推导式
my_dict = {"a":22,"b":33,"c":44}
dict_list = {value:key for key,value in my_dict.items()}
print(dict_list)
{33: 'b', 44: 'c', 22: 'a'}
#集合推导式
set_list = {key for key,value in my_dict.items()}
print(set_list)
{'c', 'b', 'a'}
网友评论