美文网首页
5-7 列表,字典集合推导式

5-7 列表,字典集合推导式

作者: 正在努力ing | 来源:发表于2018-08-26 15:51 被阅读0次

列表推导式用途

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'}

相关文章

网友评论

      本文标题:5-7 列表,字典集合推导式

      本文链接:https://www.haomeiwen.com/subject/qwyoiftx.html