python之列表推导式的用法
1.定义
用一行构建代码
例题
#构建一个1-100的列表 l1=[iforiinrange(1,101)] print(l1) #输出结果 [1,2,3,4,5,6,...100]
2.两种构建方式
2.1循环模式:[变量(加工后的变量)for变量initerable]
例题
1.将10以内所有整数写入列表
print([iforiinrange(1,11)]) #输出结果 [1,2,3,4,5,6,7,8,9,10]
2.将10以内所有整数的平方写入列表。
print([i**2foriinrange(1,11)])
3.100以内所有的偶数写入列表.
print([iforiinrange(2,101,2)])
4.从python1期到python100期写入列表list
print([f'python{i}期'foriinrange(1,101)])
练习题
l1=[i*iforiinrange(1,11)] print(l1) l2=[iforiinrange(1,101)ifi%2==0] print(l2) l3=[f'python{i}期'foriinrange(1,101)] print(l3)
2.2筛选模式:[变量(加工后的变量)for变量initerableif条件]增加一个判断
例题
#构建一个列表,要求元素大于4 print([iforiinrange(11)ifi>4]) #输出结果: [5,6,7,8,9,10]
练习题
1.10以内大于4的数
#print([iforiinrange(11)ifi>4]) print([iforiinrange(1,31)ifi%3==0])
2.30以内可以被三整除的数。
#过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 l1=['太白金星','fdsaf','alex','sb','ab'] l2=[i.upper()foriinl1iflen(i)>3] print(l2)
3.找到嵌套列表中名字含有两个‘e'的所有名字(有难度)
names=[['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'], ['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']] #方法一:普通方法 l4=[] foriinnames: forjini: ifj.count('e')>=2: l4.append(j) print(l4) #方法二:列表推导式方法 print([jforiinnamesforjiniifj.count('e')>=2])
3.列表推导式的优缺点
优点:
简单,快捷,装b
缺点:
可读性不高,不好排错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。