python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...

一、python内置函数

abs()

求绝对值

例子

print(abs(-2))

all()

把序列中每一个元素做布尔运算,如果全部都是true,就返回true,

但是如果是空字符串、空列表也返回true

例子

print(all([1,2,'1','']))

输出结果

False

例子2

print(all(''))

输出结果

True

any()

把序列中每一个元素做布尔运算,如果有一个为true就返回true,

但是有两个false还是false

例子

print(any([0,'']))

print(any([0,'',1]))

输出结果

False

True

bin()

把十进制转换为二进制

例子

print(bin(3))

输出结果

0b11

分析:其中“0b"代表二进制

bool()

判断布尔类型的,返回True或者False

bytes()

以一个字节的形式输出数据,这里的bytes是不可变数据类型

如果是整数,就输出长度为该整数长度的字节组

例子

print(bytes(0))

print(bytes(2))

print(bytes(5))

输出结果

b''b'\x00\x00'b'\x00\x00\x00\x00\x00'

如果是字符串,则必须制定编码方式进行编码

例子

name='你好'

print(bytes(name,encoding='utf-8'))

print(bytes(name,encoding='utf-8').decode('utf-8'))

输出结果

b'\xe4\xbd\xa0\xe5\xa5\xbd'

你好

分析:这里的第一行输出就是以utf-8的方式对“你好”进行编码,是二进制模式下的十六进制编码,这里是十六进制的形式,utf-8中三个字节代表一个汉字,所以前3个字节代表的是“你”

第二行输出的是对十六进制的字节进行解码,用“utf-8”的形式重新解码,所以这里被还原成“你好”

例子

name='你好'

print(bytes(name,encoding='gbk'))

print(bytes(name,encoding='gbk').decode('gbk'))

输出结果

b'\xc4\xe3\xba\xc3'

你好

分析:第一行输出是用"gbk"方式对“你好”进行编码,由于gbk是2个字符代表一个汉字,所以这里可以看到,前2个代表一个汉字,后2个代表一个汉字,

同样的这里也可以被解码重新还原为原字符串

bytearray()

以一个字节组的形式输出数据

用法与bytes()类似,但这里这个数组里的元素是可变的,bytes是不可变数据类型,而bytearray像名称一样可使用append等方法;

chr()

参数是(0~255)整数,返回的其实是ASCII码对应的字符

dict()

创建字典的函数

例子

print(dict( a = "1",b = "2" ))

输出结果

{'a': '1', 'b': '2'}

分析:这种创建字典的方式key只能是字符串,不能是数字、布尔值等,创建出的字典key是写入等式的前面,等式后面写的是value

例子2

print(dict([("a",1),(2,3)]))

输出结果

{'a': 1, 2: 3}

分析:这里是用可迭代对象创造字典,即通过二元组列表创建

dir()

打印某一个对象下面都有哪些方法

例子

print(dir(str))

输出结果

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

divmod()

实现a除以b,然后返回商与余数的元组。如果两个参数a,b都是整数,那么会采用整数除法,结果相当于(a//b, a % b)。如果a或b是浮点数,相当于(math.floor(a/b), a%b)。

例子

print(divmod(10,3))

输出结果

(3, 1)

enumerate()

将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

语法

enumerate(seq, [start=0])

seq--一个序列或者可迭代对象,start 下标的开始位置

例子

li = ["nicholas","jack","pony"]

for i in enumerate(li,1):

print(i)

输出结果

(1, 'nicholas')

(2, 'jack')

(3, 'pony')

eval()

将字符串str当成有效的表达式来求值并返回计算结果。

例子

#字符串转换成字典

print(eval('{"nick":1,"jack":2}'))

输出结果

{'nick': 1, 'jack': 2}

计算字符串里的表达式的值

例子

x,y = 1,2

print(eval('x + y'))

输出结果

3

hash()

用来做哈希运算的,只要可hash就是不可变数据类型

不可hash的就是可变数据类型

哈希是一种算法,把文件内容进行一个运算,最终得出一个值

得出的结果长度是固定的,不能根据结果反推原来的内容

本函数返回对象的哈希值。返回的哈希值是使用一个整数表示,通常使用软件校验。

例子

name = "nick"

print(hash(name))

name = "nicholas"

print(hash(name))

输出结果

5166927391536352230

分析:对name进行哈希运算返回一个值,如果中途被修改,哈希值也会变化

help()

查看帮助,查看某个函数怎么用

例子

print(help(dir))

查看dir的用法

hex()、oct()、bin()

bin()将十进制转换为二进制

hex()将十进制转换为十六进制

oct()将十进制转换为八进制

isinstance()

函数来判断一个对象是否是一个已知的类型,类似 type()。

例子

print(isinstance(1,int))

print(isinstance("a",str))

输出

True

True

分析:判断1是不是int类型,判断“a”是不是字符串类型

locals()、globals()

这两个函数主要提供,基于字典的访问局部和全局变量的方式。

globals打印全局变量,还有一些系统提供的全局变量

locals打印局部变量

例子

{'b': 'nick '}

----------------

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.sourcefileloader object at>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/06python/exercise/test2.py', '__cached__': None, 'a': 2, 'test': }

分析:这里print(locals())打印的是{'b': 'nick '},获取的是局部变量,

print(globals())在输出的最后获取了'a': 2,其他都是系统提供的全局变量

ord()

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值

pow()

pow(x,y)方法返回 xy(x的y次方) 的值。

pow(x,y,z)方法是x的y次方得到一个值,之后再用这个值对z进行取余

例子

print(pow(2,5,3))

print(pow(2,5))

输出结果

232

reversed()

reversed函数返回一个反转的迭代器。即取反,取反的对象可以是列表、字符串、元组,或者range

例子

print(reversed([1,2,3,4]))

print(list(reversed([1,2,3,4])))

输出结果

[4, 3, 2, 1]

分析:第一行输出,直接打印reversed输出的是一个反转的迭代器,要用list方法可以进行显示列表。

round()

返回浮点数x的四舍五入值。

set()

创建一个集合

slice()

切片对象,主要用在切片操作函数里的参数传递。

语法

slice(start, stop[, step])

例子

l = "hello world !"

s1 = slice(0,4)

print(l[s1])

输出结果

hell

例子2

l = "aeiou world !"

s2 = slice(0,4,2)

print(l[s2])

输出结果

ai

分析:这里加了步长。

sorted()

对所有可迭代的对象进行排序操作。内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

list 的 sort 方法返回的是对已经存在的列表进行操作

sorted 方法不能针对不同类型进行排序

例子

l = [2,1,3,5,8]

print(sorted(l))

输出结果

[1, 2, 3, 5, 8]

sorted()语法

sorted(iterable, key=None, reverse=False)

iterable -- 可迭代对象。key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中

reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

例子

people=[

{'name':'nicholas','age':18},

{'name':'jack','age':53},

{'name':'pony','age':46},

{'name':'richard','age':44},

]

print(sorted(people,key = lambda dic:dic["age"]))

输出结果

[{'name': 'nicholas', 'age': 18}, {'name': 'richard', 'age': 44}, {'name': 'pony', 'age': 46}, {'name': 'jack', 'age': 53}]

str()

将任意类型转换为字符串

sum()

对系列进行求和计算。

语法

sum(iterable[, start])

例子

li = [1,2,3,4,5]

print(sum(li))

print(sum(li,2))

输出结果

15

17

分析:第二行输出是先对列表求和,再加上参数2再次求和。

type()

查看某一对象的数据类型

例子

msg = "123"

if type(msg) is str :

msg = int(msg)

res = msg + 5

print(res)

vars()

对象object的属性和属性值的字典对象。

查看对象的属性和值,如果没有参数和locals功能一样。

如果有就显示该对象的所有方法名

print(vars(int))

二、zip()

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表或者字典。

zip()可以传2个参数,只要是序列就可以(列表、元组、字符串)

例子

print(zip(("a","b","c"),(1,2,3)))

print(list(zip(("a","b","c"),(1,2,3))))

print(list(zip(("a","b","c"),(1,2,3,4))))

print(list(zip(("a","b","c","d"),(1,2,3))))

输出结果

[('a', 1), ('b', 2), ('c', 3)]

[('a', 1), ('b', 2), ('c', 3)]

[('a', 1), ('b', 2), ('c', 3)]

分析:第一行输出的是zip的对象,要转换为列表用list的方法

zip的左右两个参数序列是一一对应的关系,如果有多的自动忽略

例子2

p={'name':'nicholas','age':18,'gender':'man'}

print(list(zip(p.keys(),p.values())))

输出结果

[('name', 'nicholas'), ('age', 18), ('gender', 'man')]

分析:这样就可以把字典中的元素提取出来

例子

print(dict(zip(("a","b","c"),(1,2,3))))

输出结果

{'a': 1, 'b': 2, 'c': 3}

分析:这里可以直接将zip对象转为字典。

三、max() 、min()

max()求最大的值

例子

dic = {"age1":18,"age4":25,"age2":19,"age3":28}

print(max(dic))

print(max(dic.values()))

print(max(zip(dic.values(),dic.keys())))

输出结果

age4

28

(28, 'age3')

分析:print(max(dic))语句默认比较的是字典的key,进行字符串的比较,一个字符一个字符的比较,根据字符的ASCII码进行比较

第二行输出print(max(dic.values())),比较的是字典的value,直接输出最大的value

第三行输出是首先将字典用zip方法将字典的value和key组成一个一一对应的元组,然后直接比较这个元组的大小

具体

dic = {"age1":18,"age4":25,"age2":19,"age3":28}

v = zip(dic.values(),dic.keys())

#这里也是一个可迭代对象

for i in v:

print(i)

输出结果

(18, 'age1')

(25, 'age4')

(19, 'age2')

(28, 'age3')

这里通过for循环可以看出zip(dic.values(),dic.keys())是一个元组

例子2

l = [(5,"a"),(3,"b"),(2,"c")]

print(max(l))

输出结果

(5, 'a')

分析:这里是从第一个值进行比较,5、3、2进行比较,如果有结果,后面的就不用比较了

例子3

l = ["a18","b21","c5"]

print(max(l))

输出结果

c5

分析:这里也是一个字符一个字符的比较。

max()的高级用法

max(iterable,key = func)

iterable--可迭代对象,func--对对象的元素处理逻辑

例子

people=[

{'name':'pony','age':1000},

{'name':'jack','age':10000},

{'name':'richard','age':9000},

{'name':'nick','age':18},

]

print(max(people,key = lambda x:x["age"]))

输出结果

{'name': 'jack', 'age': 10000}

分析:这里是对列表中每个元素进行for循环,即字典进行取出“age”对应的value进行比较,同时输出value最大值的元素,与map函数进行for循环类似。

x["age"]是对列表的每个元素进行索引,而非对列表进行索引,因为这个max()函数对要处理的可迭代对象进行了类似for循环处理。

min()函数与max()用法类似,max()求最大值,min()求最小值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rds基于mysql开发的_开发云数据库RDS MYSQL版讲解

前言 这篇文章适合所有的 C# 开发新手、老鸟以及想准备学习开发 C# 的程序猿。.NET Core是一个开源通用的开发框架&#xff0c;支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime&#xff0c; 使用 C# 编写 serverless 函数, 详情见官方文档&#xff1a;C# 函数入口. 在…

C# Action

C# Action 的一般用法 最近在看汤姆大叔的JavaScript教程&#xff0c;总结的相当好&#xff0c;可惜自己功力尚浅不能把学到的融会贯通。看过今天大叔发的一篇博文&#xff0c;在js的回调函数中想到了一点关于Action的用法。 发一段简单不能在简单的程序 1 class Program 2 …

浮动div,回到顶部

<div style"height: 5000px">这是顶部</div> <div id"FloatDIV" style"position: absolute;top: 0px; z-index:9999; background: #fff000;cursor: pointer"onclick"window.scrollTo(0,0);">回到顶部 </div>&…

通过图片 找到桌面相同图片区域坐标_【Axure RP9原型案例】京东与淘宝的商品图片是如何被放大的...

摘要&#xff1a;在电商的商品详情页中我们经常会看到图片放大器的运用&#xff0c;我们以京东商品详情页为例来制作这样的原型效果。案例中综合运用了鼠标移入事件、鼠标移动事件&#xff0c;元件的移动、元件的显示/隐藏等交互动作。京东示意图观察交互首先我们观察京东详情页…

ref的mysql_ref:Mysql授权远程登陆

在Windows环境上操作。步骤如下&#xff1a;1. 打开cmd窗口&#xff0c;登陆mysqlmysql -uroot -p1234562.使用mysql数据库use mysql3.查看结果中host一行中是否有%,如果有%&#xff0c;此行用户名允许远程登录。下图所示&#xff0c;白色框中表示允许远程登录的账号&#xff1…

每当处于窘境时,想想当初坚持的理由

突然间想起了关于信仰的话题&#xff0c;自己不想很多伟大和强悍的人&#xff0c;有着坚忍不催的信仰&#xff0c;很多事想做就不顾后果的做了&#xff0c;常常会弄得最后一塌糊涂甚至后悔莫及&#xff0c;回想伴着ACM一路渴磕磕碰碰&#xff0c;走走停停&#xff0c;最终却是一…

mysql 5.7.4 m14_win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)

1. mysql-5.7.4-m14-winx64.zip下载官方网站下载地址&#xff1a;http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17-winx64.zip2、解压到D:\mysql.(路径自己指定)3、在D:\mysql\mysql-5.7.4-m14-winx64下新建my.ini配置文件内容如下&#xff1a;#################…

python中的sorted是什么意思_python中sort与sorted区别

1、sort()函数 (只对list有用)sort(...)L.sort(key None,reverseFalse)key 函数 这个函数会从每个元素中提取一个用于比较的关键字。默认是Nonereverse True/False (默认是False升序&#xff1b;True&#xff1a;降序)作用&#xff1a;对原序列进行排序&#xff0c;也就是直…

怎样在wp7中检测“主题背景”

由于Windows Phone 可以使用深色&#xff08;黑色&#xff09;或淡色&#xff08;白色&#xff09;主题&#xff0c;知道用户的主题以确定你的应用程序的颜色模式是很重要的一件事。 XAML <Grid x:Name"LayoutRoot" Background"Transparent"><Sta…

mysql执行计划中的temp_MYSQL语句调优:GROUP BY ORDER BY语句中出现USING TEMPATORY

CREATE TABLE WCC_BYPrice (BPRID int(11) NOT NULL AUTO_INCREMENT,PRID int(11) NOT NULL COMMENT 价格表主键,PKID int(11) NOT NULL COMMENT 商品表主键,BRID mediumint(8) NOT NULL COMMENT 品牌id,STID mediumint(8) NOT NULL COMMENT 商家id,CRCode varchar(8) DEFAULT …

json格式校验并显示错误_使用postman做自动化接口校验

要想实现接口的自动化测试&#xff0c;需要以下几个步骤&#xff1a;自动登录首先点击postman左上角的new按钮&#xff0c;创建一个collection&#xff0c;在pre-request-scripts标签下&#xff0c;给整个collection创建一个公用规则编写登录脚本pre-request-scripts在请求发送…

前端学习(2906):Vite 解决了 Webpack 哪些问题

随着项目的复杂度升级&#xff0c;代码规范和管理就必须要同步提升。于是&#xff0c;编程社区中提出了多种模块化规范&#xff0c;服务端选择了 CommonJS 规范&#xff0c;客户端选择 AMD 规范较多&#xff0c;但是&#xff0c;两种模块化规范也都存在一定的问题&#xff0c;都…

wpf 去除按钮点击时会画一个点线的矩形

wpf 去除按钮点击时会画一个点线的矩形 最近在研究wpf&#xff0c;啥都不懂&#xff0c;特把自己查到的有用东西&#xff0c;收集一下&#xff1a;<Pagexmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.…

tfidf算法 python_tf–idf算法解释及其python代码实现(下)

tf–idf算法python代码实现这是我写的一个tf-idf的简单实现的代码&#xff0c;我们知道tfidftf*idf&#xff0c;所以可以分别计算tf和idf值在相乘&#xff0c;首先我们创建一个简单的语料库&#xff0c;作为例子&#xff0c;只有四句话&#xff0c;每句表示一个文档copus[我正在…

powerbuilder提示不是下拉窗口_为什么过去状态管理不是问题?

2-tier 架构远古时期&#xff0c;状态是完全由数据库管理的。数据库提供的连接是有状态的&#xff0c;打开页面的时候开连接&#xff0c;页面上的改动直接提交到当前的数据库连接。数据库连接的状态就是页面状态。3-tier 架构后来因为互联网类型的应用的发展&#xff0c;数据库…