python学习记录(二)-特殊函数
闭包函数
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]
python学习记录(二)-特殊函数的更多相关文章
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- Material Calendar View 学习记录(二)
Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- Python学习记录day8
目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...
- Python学习记录day7
目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 2.VUE前端框架学习记录二
VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
随机推荐
- springboot1.x apollo 更改属性值不起作用。 ConfigurationProperties
1. @ApolloConfigChangeListeners 默认监控命名空间是 application.properties , 如果是自己创建的namespace ,一定要明确指定(包含文件扩展 ...
- python监控文件变化
网址: https://blog.csdn.net/qq_40223983/article/details/102889329 起步在python中文件监控主要有两个库,一个是pyinotify,一个 ...
- OpenStack 虚拟机制作qcow2格式镜像
虚拟机拍摄快照导出1.将虚拟机制作成镜像(即拍摄快照):2.利用该虚机的快照,创建一个快照卷,大小是根据快照的大小自动设置的:3.利用命令将快照卷 upload-to-image 到虚机的快照内 ci ...
- wpBullet-20190604
WordPress Plugins/Themes 和 PHP 的静态代码分析工具 Usage: wpbullet.py [-h] [--path PATH] [--enabled ENABLED] [ ...
- Coursera Programming Languages, Part B 华盛顿大学 Week 2
Datatype-programming in Racket without structs 在 ML 语言中,我们使用 datatype binding 来实现对 标签联合类型的构建:传送门 这是因 ...
- 实验:spring-boot整合mybatis-plus实现分页查询的功能
1.建立基于sping-boot的javaweb工程(java1.8) 按结构建立包 2.POM.XML添加支持mybatis-plus,sql,lombok <!--mybatis-plus的 ...
- pandas、matplotlib常用命令(收集整理)
1 import matplotlib.pyplot as plt 2 import pandas as pd 3 import matplotlib as mpl 含有中文无法正常显示,需增加如下代 ...
- React-Native笔记--node_modules删除
在开发RN项目过程中,经常会用到删除node_modules文件夹的命令,现总结如下: 方式1: npm install rimraf -g rimraf node_modules方式2: rmdir ...
- 杭电OJ1029题C++实现
解题思路:因为要求的数出现的次数总是比其他数字出现的次数多1,所以若总是用相同的数去与其他的数相抵,那么最后只剩下一个,那就是要求的数. 另外需要注意的一点就是,最好不要去开长度为999999的数组, ...
- linux执行某个文件夹下的所有sql文件
一个目录下有多个sql文件,hive需要执行该目录下的每个文件 #!/bin/bash dir=$(ls -l /app/test_warehouse/git/azkaban/test_shrimp/ ...