🐱👓🐱👓🐱👓🐱👓 作者:不良使 🐱👓🐱👓🐱👓🐱👓🐱👓🐱👓 🐱👤python建模赛道top3 🐱👤华为云享专家 🐱👓🐱👓🐱👓🐱👓🐱👓🐱👓🐱👓🐱👓 如果认为博主的文章有帮助,记得一键三连👀👀
python技能数不用推导式
list1=[] for i in range(10): list1.append(i) print(list1) 结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
**
列表推导式
**
# TODO 列表推导式 # 推导式 [结果 for 变量 in 可迭代对象] list2=[i for i in range(10)] print(list2) #python一期到python十八期 list3=["python%s" % i for i in range(1,19)] print(list3) #筛选模式 和if条件结合使用 #[结果 for 变量 in 可迭代对象 if 条件] list4=[i for i in range(100) if i%2==0 ] print(list4) #TODO 寻找名字中带有 两个e 的人的名字 names=[["Tom","Ailly","Jepetty","John","steem"], ["Alice","People","Class","numpter","murrep"]] #不用推导式的方法 result=[] for i in names: for j in i: if j.count("e")>=2: result.append(j) print(result) #推导式 gen=[j for i in names for j in i if j.count("e")>=2] for i in gen: print(i) 结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ['python1', 'python2', 'python3', 'python4', 'python5', 'python6', 'python7', 'python8', 'python9', 'python10', 'python11', 'python12', 'python13', 'python14', 'python15', 'python16', 'python17', 'python18'] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98] ['Jepetty', 'steem', 'People'] Jepetty steem People
生成器推导式
# TODO 生成器推导式 #注意:生成器推导式和列表推导式语法基本一样,不是[],而是() lists=[12,11,23,1] list5=(i for i in lists) for i in list5: print(i) #第几次 list6=["第%s次" % i for i in range(1,19)] print(list6) #筛选模式 和if条件结合使用 #(结果 for 变量 in 可迭代对象 if 条件) list6=(i for i in range(100) if i%3==0) for k in list6: print(k) #TODO 寻找名字中带有 两个e 的人的名字 names=[["Tom","Ailly","Jepetty","John","steem"], ["Alice","People","Class","numpter","murrep"]] #不用推导式的方法 result=[] for i in names: for j in i: if j.count("e")>=2: result.append(j) print(result) #推导式 gen=(j for i in names for j in i if j.count("e")>=2) for i in gen: print(i)
['Jepetty', 'steem', 'People'] Jepetty steem People
注意:注意:生成器推导式和列表推导式语法基本一样,不是[],而是(),只是括号不一样,语法基本一样
列表推导式和生成器推导式的区别:
# 列表推导式 # [结果 for 变量 in 可迭代对象] #生成器推导式 # (结果 for 变量 in 可迭代对象) # TODO 区别: 1、列表推导式比较耗内存,一次性加载。生成器推导式几乎不占内存,使用的时候才分配和使用内存 # 2、列表推导式得到的是列表,生成器推导式得到的是一个 @@生成器@@
**
字典推导式
**
# TODO 字典推导式 lst1=['jay','jj','james'] lst2=["周杰伦","李大钊","尼姆斯"] # dict={} # for i in range(len(lst1)): # dict[lst1[i]]=lst2[i] # print(dict) A={lst1[i]:lst2[i] for i in range(len(lst1))} print(A)
**
集合推导式
**
# TODO 集合推导式 自带一个去重功能,特点:无序不重复 lst=[1,-2,13,4,5,-4,5,-5,-6] # se ={abs(i) for i in lst} #abs绝对值 se={i for i in lst} print(se)