list推导式,dict推导式,set推导式

生成一个1-14的列表 

  

  1.1 普通for循环  

# lst = []
# for i in range(1,15):
# 	lst.append(i)
# print(lst)
# # 结果:
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

  

  1.2 list 推导式

lst = [i for i in range(1,15)]
print(lst)
# 结果:
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
# 代码更加简短,

 

2. 生成器表达式和list推导式的区别

  1.列表推导式比较耗内存,一次性加载,生成器几乎不在用内存,只有字访问生成器的时候才会分配和使用内存

  2.得到值不一样,列表推导式得到的是一个列表,生成器得到的是一个生成器,需要去触发这个生成器,触发一次,返回一次结果,还想要结果就需要再次触发

 

3. 字典推导式

  3.1 把字典中的key和value位置互换

dic = {'a':1,'b':2}
new_dic = {dic[key]:key for key in dic}
print(new_dic)
# 结果:{1: 'a', 2: 'b'}

  

  3.2  在以下list中,从list1中获取的数据和list2中相应的位置的数据组合成一个新的字典  

list1 = ['阿里巴巴','腾讯','京东']
list2 = ['马云','马化腾','刘强东']

dic = {list1[n]:list2[n] for n in range(len(list1))}
print(dic)
# 结果:{'阿里巴巴': '马云', '腾讯': '马化腾', '京东': '刘强东'}

  

4. set推导式

  可以直接帮我们生成一个无需,不重复的集合

lst = [1,1,2,2,3,3,55,366,5,4,55,45,87,62,3,4]
set1 = {n for n in lst}
print(set1)
# 结果:{1, 2, 3, 4, 5, 45, 366, 87, 55, 62}

  

posted @ 2018-03-18 18:20  王剑威  阅读(189)  评论(0编辑  收藏  举报