python学习之内置函数(二)
4.7.3 内置函数(2)
int() str() bool() set() list():将一个可迭代对象转化为列表 tuple():将一个可迭代对象转换成元组
dic(): 通过相应的方式创建字典
print()输出到屏幕
源码
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件
sep: 打印多个值之间的分隔符,默认为空格
end: 每一次打印的结尾,默认为换行符
flush: 立即把内容输出到流文件,不作缓存
#示例
print(1,2,3,4,sep= ',') #打印多个值之间的分隔符,默认为空格
print(111,end='-') #每一次打印的结尾,默认为换行符
print(222)
#输出
1,2,3,4
111-222
abs()返回绝对值
print(abs(-100)) #输出100
sum()数字相加求和
不支持元素嵌套类型的
print(sum((1,2,3,4))) # 输出 10
print(sum((1,2,3),100)) # 输出 106
print(sum(([1,2,3],2,3)))
# 输出报错 TypeError: unsupported operand type(s) for +: 'int' and 'list'
min()最小值
比较数值大小,比较的对象必须是同类型的元素
print(min(1,2,3,4,5)) # 输出 1
print(min([1,2,3,4])) # 输出 1
print(min((1,2,3,4),6,7)) #输出报错,不同元素类型不能比较大小
#TypeError: '<' not supported between instances of 'int' and 'tuple'
可以加key,灵活比较元素;加key是可以加函数名,min自动会获取传入函数中的参数的每个元素,然后通过你设定的返回值比较大小,返回最小的传入的那个参数。
#当没有指定比较元素时,会默认比较第一个元素
print(min((1,2,3,4),(6,7))) #输出 (1,2,3,4)
print(min((8,2,3,4),(6,7))) #输出 (6,7)
#加key可以指定比较两个元组的第三个位置数值的大小
print(min((8,2,3,4),(6,7,11),key=lambda x:x[2])) #输出(8, 2, 3, 4)
#还可以直接输出第三个位置上的最小值
print(min((8,2,3,4),(6,7,11),key=lambda x:x[2])[2]) #输出3
加key的练习
# list = [
# {'name': 'alex', 'age': 73},
# {'name': 'wusir', 'age': 35},
# {'name': '太白', 'age': 25},
# ]
# # 将年龄最小的 字典返回。
print(min(list,key=lambda x : x['age'])) #输出 {'name': '太白', 'age': 25}
# # 将年龄最小的名字返回。
print(min(list,key=lambda x : x['age'])['name']) #输出 太白
# # 将年龄最小的年龄返回。
print(min(list,key=lambda x : x['age'])['age']) #输出 25
max()最大值
用法语min一样
bytes() 把字符串转换成bytes类型
#把字符转成字节
#方法一:
s = '德玛'
x = s.encode('utf-8')
print(x)
#输出 b'\xe5\xbe\xb7\xe7\x8e\x9b'
#方法二:
print(bytes(s,encoding='utf-8'))
#解码
b = b'\xe5\xbe\xb7\xe7\x8e\x9b'
#方法一:
print(b.decode('utf-8'))
#方法二:使用str转换成字符串
print(str(b,encoding='utf-8'))
zip()拉链
zip()用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元祖组成的内容,如果各个迭代器的元素个数不一致,则按照长度最短的返回。
l1 = [1,2,3,4]
l2 = ['a','s','b']
l3 = ('喝','汽','水','吧')
print(zip(l1,l2,l3)) #返回的时一个迭代器的内存地址
#输出<zip object at 0x000001D979C45308>
print(list(zip(l1,l2,l3)))
#输出[(1, 'a', '喝'), (2, 's', '汽'), (3, 'b', '水')]
sorted()排序函数
默认从小到大
reverse = True表示从大到小排序
普通版:
对可迭代对象的每一个元素进行排序,以新的列表的形式输出
print(sorted((4,2,3,4)))
#输出 [2, 3, 4, 4]
print(sorted('34231'))
#输出 ['1', '2', '3', '3', '4']
带key版
根据想要hi教的内容配合函数进行排序
l1 = [('盖伦', 80), ('皇子', 75), ('女警', 7), ('赵信', 59)]
#按照数字进行排序
print(sorted(l1,key=lambda x:x[1]))
#按照数字倒序排序
print(sorted(l1,key=lambda x:x[1],reverse=True))
# 字典排序返回的就是排序后的key
dic = {1:'a',3:'c',2:'b'}
print(sorted(dic))
sorted同样可以配合函数和lambda进行排序
lst = [{'id':1,'name':'盖伦','age':22},
{'id':2,'name':'皇子','age':25},
{'id':3,'name':'赵信','age':23},]
#按照年龄进行排序
print(sorted(lst,key=lambda x:x['name']))
filter()筛选过滤
语法: filter(function,iterable)
function: 用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据
iterable:可迭代对象
filter()返回一个生成器
lst = [{'id':1,'name':'盖伦','age':22},
{'id':2,'name':'皇子','age':25},
{'id':3,'name':'赵信','age':23},]
#筛选年龄小于30的
print(list(filter(lambda x:x['age']<30,lst)))
#按步筛选
ret = filter(lambda x:x['age']>20,lst)
print(next(ret))
print(next(ret))
map()
映射函数
语法: map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function
返回一个生成器,要用next触发map()
# map 返回一个迭代器,相当于生成器表达式:循环模式
l1 = [6,7,8,9]
print([i**2 for i in l1]) #输出[36, 49, 64, 81]
print(map(lambda x:x**2,l1)) #输出<map object at 0x0000019E654CD940>
print(list(map(lambda x:x**2,l1))) #输出[36, 49, 64, 81]
计算两个列表中相同位置的数据的和
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))
#输出[3, 6, 9, 12, 15]
reduce
reduce的作用是先把列表中的前俩个元素取出计算出一个值然后临时保存着,接下来用这个临时保存的值和列表中第三个元素进行计算,求出一个新的值将最开始临时保存的值覆盖掉,然后在用这个新的临时值和列表中第四个元素计算,以此类推。
在Python2.x版本中recude是直接 import就可以的, Python3.x版本中需要从functools这个包中导入
python2中使用方法
语法:reduce(函数名,可迭代对象)
ret = reduce(func,[3,4,5,6,7])
print(ret) #输出25
python3中使用
from functools import reduce
print(reduce(lambda x,y : x+y,[1,2,3,4])) #输出10
print(reduce(lambda x,y : 2*x+y,[1,2,3])) #输出11
print(reduce(lambda x,y :x+y,['a','b','c','s'])) #输出abcs
python学习之内置函数(二)的更多相关文章
- python学习之内置函数(一)
4.7 内置函数 4.7.1 内置函数(1) eval 执行字符串类型的代码,并返回最终结果. eval('2 + 2') # 4 n=81 eval("n + 4") # 85 ...
- python之内置函数(二)与匿名函数、递归函数初识
一.内置函数(二)1.和数据结构相关(24)列表和元祖(2)list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素).tuple:将一个可迭代对象转化成元组(如果是字典,默认将k ...
- Python基础之内置函数(二)
先上一张图,python中内置函数: python官方解释在这:点我点我 继续聊内置函数: callable(object):检查对象是否可被调用,或是否可执行,结果为bool值 def f1(): ...
- python基础之内置函数
该博客内容参考http://www.cnblogs.com/wupeiqi/articles/4943406.html 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经 ...
- Python基础之内置函数和递归
一.内置函数 下面简单介绍几个: 1.abs() 求绝对值 2.all() 如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回 True 3.any() 如果 iterable 的 ...
- Python入门-内置函数二
看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...
- python基础之内置函数补充、匿名函数、递归函数
内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数 ...
- python基础之内置函数和匿名函数
内置函数 学习函数以后多了很多概念,例如函数的命名空间,函数的作用域,函数的调用等等,函数的作用就是为了实现某些功能而方便以后可以调用,内置函数就是这样的一些公共的函数,被称为内置函数. 我们就一 ...
- Python系列之内置函数
内置函数 一.数学运算类: abs(a):求绝对值如果参数是个复数则返回复数的模. a = abs(-1) print(a) >>>1 compilex([real[, imag]] ...
随机推荐
- json校验失败的原因
如下原因会造成JSON校验失败,而且会让你不知道为什么失败 JSON字符串里的非数字型键值没有双引号 JSON中存在\t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过.去掉就能过了. ...
- 还不会使用MyEclipse的Breadcrumb导航功能?再不看你就OUT了
MyEclipse CI 2019.4.0安装包下载 使用DevStyle Breadcrumb导航可以轻松地浏览工作区,只需遵循breadcrumb路径即可.DevStyle作为Eclipse插件提 ...
- VCL界面开发必备装备!DevExpress VCL v19.1.5你值得拥有
DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...
- Spring JdbcTemplate + transactionTemplate 简单示例 (零配置)
jdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTempla ...
- JAVA笔记10-抽象类
(1)abstrac关键字类修饰的类是抽象类,用abstract修饰的方法是抽象方法: (2)含有抽象方法的类必须被定义为抽象类: (3)抽象类必须被继承,抽象方法必须被重写(或者将子类也声明为抽象类 ...
- centos7安装bower遇到的问题
Bower依赖node, npm和git. 安装nodejs遇到 Error: Package: 1:nodejs-6.11.1-1.el7.x86_64 (epel) Requires: libht ...
- Mysql中几种sql的常见用法
如何使用非默认的排序.例如使用213之类的排序 可以使用如下方法 SELECT DISTINCT pg.part_grp_id, pg.part_grp_name, pg.equip_category ...
- JS拖动滑块验证
使用这种验证方法的目的:证明当前的用户不是机器人~防止恶意操作. 实现思路: 1.获取silde滑块(获取元素) 2.为元素注册事件———鼠标点击事件(onmousedown)鼠标点击之后获得当前鼠标 ...
- Linux不同机器文件挂载
由于此前发布项目应用时,需要对两台文件服务器进行文件挂载,所以才实际第一次接触到这个名词,但由于一直以来自己没有真正的去操作过,只是停留在一些理论层次,所以今天记录一下这个实现过程,以备后用. 使用设 ...
- IntelliJ IDEA常用快捷键总结
之前开发项目一直用的是eclipse进行开发,近期在使用IDEA这个工具进行项目开发,之前在eclipse上能使用的快捷键方法放在IDEA上很多都不适用了,因此在此总结一下关于IDEA快捷键的使用方法 ...