推导式生成器表达式
Posted 小仙女~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推导式生成器表达式相关的知识,希望对你有一定的参考价值。
列表推导式
-
只适合用于构建比较复杂且有规律的列表,超过三层循环才能构建成功的,就不建议用列表推导式了
-
不能使用debug模式
-
循环模式:[变量 for 变量 in 可迭代对象]
# 1-100之间的偶数写入列表 li=[i for i in range(2,101,2)] print(li) #打印出小仙女1-100号 li1=[f\'小仙女{i}号\' for i in range(1,101)] print(li1) #将10以内的整数平方写入列表 li2=[i**2 for i in range(1,11) ] print(li2)
-
筛选模式:[变量 for 变量 in 可迭代对象 if 条件]
#打印出30以内能被3整除的数 li3=[i for i in range(1,31) if i%3==0] print(li3) #过滤长度小于3的字符串列表,并将剩下的转换成大写字母 li=[\'baoli\',\'wang\',\'li\',\'yn\'] li1=[i.upper() for i in li if len(i)>3 ] print(li1) #循环出列表中有两个e的元素 name = [["Tom", "Billy", "Thomas"," Jefferson", "Andrew", "Wesley", "Stephen", "Joe"], [" Alice ", "Jill"," Anna ", "Wendy", "Jennifer", "sherry", "Eva"]] li2=[j for i in name for j in i if j.count(\'e\')==2] print(li2)
生成器表达式
- 几乎于列表推导式一模一样,只不过把[]换成了()
obj=(i for i in range(1,11))
for j in obj: #for 循环的时候就已经转换成迭代器
print(j)
列表推导式于生成器表达式的区别
- 写法上的区别([],())
- iterable:可迭代对象 与Iterator:迭代器的区别
字典推导式
list1=[\'xiaoxiannv\',\'xiaoyun\',\'wangminmin\',\'xiaotong\']
list2=[\'小仙女\',\'小云\',\'王敏敏\',\'小彤\']
dic={list1[i]:list2[i] for i in range(len(list1))}
print(dic)
得:{\'xiaoxiannv\': \'小仙女\', \'xiaoyun\': \'小云\', \'wangminmin\': \'王敏敏\', \'xiaotong\': \'小彤\'}
集合推导式
tu={i for i in range(1,11)}
print(tu)
以上是关于推导式生成器表达式的主要内容,如果未能解决你的问题,请参考以下文章