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}