python学习记录(二)-特殊函数
2024-09-08 18:17:10
闭包函数
def outer():
var = 100
def inner():
nonlocal var
var += 200
print(var)
return inner
res = outer()
res() # 300
lambda表达式
res = lambda x,y:x+y
print(res(1,2)) #3
res = lambda sex:'男' if sex == 'male' else '女'
print(res('female')) # 女
迭代器
可迭代对象:str,list,dict,tuple,set,range()
迭代器取值特点:取出一个少一个,直到取完,再取就报错
迭代器取值方式:
1、next():一次取一个数据
2、list():取出所有数据
3、for循环
var = [1,2]
res = iter(var)
#print(res,type(res)) # <list_iterator object> <class 'list_iterator'>
print(next(res)) # 1
print(next(res)) # 2
#print(next(res)) # StopIteration
print(list(res)) # []
检测可迭代对象和迭代器
from collections.abc import Iterable,Iterator
var = '1234'
res = iter(var)
r1 = isinstance(var,Iterable) # 检测是否是可迭代对象
r2 = isinstance(var,Iterator) # 检测是否是迭代器
r3 = isinstance(res,Iterable)
r4 = isinstance(res,Iterator)
print(r1,r2) # True False
print(r3,r4) # True True
zip函数
var1 ='1234'
var2 =['a','b','c','d']
print(zip(var1,var2)) # <zip object at 0x0000027E3422F0C8>
print(*zip(var1,var2)) # ('1', 'a') ('2', 'b') ('3', 'c') ('4', 'd')
print(list(zip(var1,var2))) # [('1', 'a'), ('2', 'b'), ('3', 'c'), ('4', 'd')]
x,y = zip(*zip(var1,var2))
print(x,y) # ('1', '2', '3', '4') ('a', 'b', 'c', 'd')
ascii码
print(ord('a')) # 97
print(chr(97)) # a
sorted()函数
def fun(num):
return abs(num)
varlist = [4,2,8,-3]
print(sorted(varlist)) # [-3, 2, 4, 8]
print(sorted(varlist,reverse=True)) # [8, 4, 2, -3]
print(sorted(varlist,key=abs)) # [2, -3, 4, 8]
print(sorted(varlist,key=fun)) # [2, -3, 4, 8]
print(sorted(varlist,key=lambda x:abs(x))) # [2, -3, 4, 8]
map()函数
varlist = [1,2,3,4]
res = map(lambda x:x**2,varlist)
print(list(res)) # [1, 4, 9, 16]
reduce()函数
from functools import reduce
varlist = [5,2,1,1]
res = reduce(lambda x,y:x*10+y,varlist)
print(res) #5211
filter()函数
varlist = [1,2,3,4,5,6,7,8]
res = filter(lambda x:True if x % 2 == 0 else False,varlist)
print(list(res)) # [2, 4, 6, 8]
最新文章
- How to step through your code in chrome
- CSS的IE6、IE7、FF兼容性写法
- [Hadoop源码解读](一)MapReduce篇之InputFormat
- 初见Javascript
- App Store Review Guideline(带翻译)
- JS高级编程读书笔记
- PHP中域名绑定
- 慢查询日志分析(mysql)
- Activity之间的跳转和数据传输
- Django REST Framework API Guide 07
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
- pymysql-python爬虫数据存储准备
- 涂抹mysql笔记-管理mysql服务
- JDBC 查询的三大参数
- emberjs 按年月分组
- BZOJ 3357: [Usaco2004]等差数列
- 【转载】关于大数据库的一些不错的GitHub项目
- QT Creator快捷键不能用
- clone一行div tr 每次增量赋值
- [redis] 数据特性简单实验
热门文章
- elasticSearch(六)--全文搜索
- Flink Application Development DataStream API Operators Overview-- Flink应用程序开发DataStream API操作符概览
- password_encryption_type 和 pg_hba.conf 不匹配导致用户连不上
- 实时搜索引擎Elasticsearch
- 前端电商 sku 的全排列算法
- pytorch中 model.cuda的作用
- Python 封装cmd 执行命令
- JDBC基本案例
- CentOS7 修改root密码
- pytorch学习笔记(9)--损失函数