净心诀---python3生成器进阶
2024-09-06 03:51:17
列表推导式
把需要用一个函数写成的小功能,利用一行表达式完成
例子:
l = [1,2,3,4,5]
# 所有的偶数都放到新的列表中
# 正常函数
def Lst():
li = []
for i in l:
if i%2 == 0:
li.append(i)
return li li = Lst()
print(li) # 列表推导式
ls = [i for i in l if i%2 == 0]
print(ls)
练手题:
# 30以内所有能被3整除的数
ls1 = [i for i in range(31) if i%3 == 0]
print(ls1)
# 30以内所有能被3整除的数的平方
ls2 = [i**2 for i in range(31) if i%3 == 0]
print(ls2)
# 找到嵌套列表中名字含有两个'e'的所有名字
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley'],['Alice']]
ls = [name for lst in names for name in lst if name.count('e') == 2]
print(ls)
生成器表达式:
与列表表达式写法一致,不同在于列表表达式中的 [ ] 换成了()
生成器取值的方式
1.gen.__next__
2.for n in gen:pass
3.list(gen)
思考:
题:
1 def add(n,i):
2 return n+i
3
4 def test():
5 for i in range(4):
6 yield i
7
8 g=test()
9 for n in [1,10]:
10 g=(add(n,i) for i in g)
11
12 print(list(g))
=============================
lambda 函数写法
【lambda 参数 :具体函数】
例子:
a = lambda a,b : a if a>b else b
b = lambda a : '偶' if a%2==0 else '奇'
c = lambda a : abs(a)
print(a(3,2))
print(b(2))
print(c(-5))
最新文章
- springmvc原理
- js函数传参
- 获取当前时间UTC时间的下一个15分钟时间点
- IE11浏览器:请不要再叫我IE,谢谢
- ansible 安装使用
- NGUI之渲染DrawCall的合并
- ProgressDialog 的 使用
- 初探appium之appium的使用
- 基于opencv的手写数字识别(MFC,HOG,SVM)
- 黑客瑞士军刀NC使用教程
- HDU 5777 domino
- 测试那些事儿—selenium IDE 自动化测试
- Marlin 擠出頭溫度控制PID值校正
- Kong安装简介
- 机器学习 MLIA学习笔记(一)
- Java直接用javac来编译带package的类
- 【BZOJ 1098】办公楼(补图连通块个数,Bfs)
- 排序:快速排序Quick Sort
- linq中当生成asp.net实体模式时
- vim中翻页的命令
热门文章
- C/C++程序员 面试经历总结
- 都 9102 年了,一起来攻克 Linux 吧!
- ubuntu中搭建基本的开发环境
- ScrollView嵌套listview显示一行bug
- 【记录】原生js日期格式化转换方法
- Andoid之硬件访问服务1(让Andoid应用程序访问c库)
- (转)Unity Cinemachine插件,实现单目标和多目标之间切换
- 牛客练习赛48 C,D,E
- Linux系统关闭对ping命令做响应。
- PHP FILTER_SANITIZE_MAGIC_QUOTES 过滤器