Python之路Python内置函数zip()max()min()

Posted 五六七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之路Python内置函数zip()max()min()相关的知识,希望对你有一定的参考价值。

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\'<br>你好

 

分析:这里的第一行输出就是以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 0x002EA550>, \'__spec__\': None, \'__annotations__\': {}, \'__builtins__\': <module \'builtins\' (built-in)>, \'__file__\': \'D:/06python/exercise/test2.py\', \'__cached__\': None, \'a\': 2, \'test\': <function test at 0x02116CD8>}

 

  

分析:这里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])))

 

  

输出结果

<list_reverseiterator object at 0x002EA570>[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])

 

  

输出结果

1

 

  

分析:这里加了步长。

 

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))

以上是关于Python之路Python内置函数zip()max()min()的主要内容,如果未能解决你的问题,请参考以下文章

python之路——内置函数与匿名函数

Python之路第十四篇:Python的内置函数

Python之路——内置函数

Python之路--Python基础4--内置函数

python内置函数zip

python之路---13 内置函数