日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2023/12/10 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、python內(nèi)置函數(shù)

abs()

求絕對(duì)值

例子

print(abs(-2))

all()

把序列中每一個(gè)元素做布爾運(yùn)算,如果全部都是true,就返回true,

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

例子

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

輸出結(jié)果

False

例子2

print(all(''))

輸出結(jié)果

True

any()

把序列中每一個(gè)元素做布爾運(yùn)算,如果有一個(gè)為true就返回true,

但是有兩個(gè)false還是false

例子

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

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

輸出結(jié)果

False

True

bin()

把十進(jìn)制轉(zhuǎn)換為二進(jìn)制

例子

print(bin(3))

輸出結(jié)果

0b11

分析:其中“0b"代表二進(jìn)制

bool()

判斷布爾類型的,返回True或者False

bytes()

以一個(gè)字節(jié)的形式輸出數(shù)據(jù),這里的bytes是不可變數(shù)據(jù)類型

如果是整數(shù),就輸出長(zhǎng)度為該整數(shù)長(zhǎng)度的字節(jié)組

例子

print(bytes(0))

print(bytes(2))

print(bytes(5))

輸出結(jié)果

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

如果是字符串,則必須制定編碼方式進(jìn)行編碼

例子

name='你好'

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

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

輸出結(jié)果

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

你好

分析:這里的第一行輸出就是以u(píng)tf-8的方式對(duì)“你好”進(jìn)行編碼,是二進(jìn)制模式下的十六進(jìn)制編碼,這里是十六進(jìn)制的形式,utf-8中三個(gè)字節(jié)代表一個(gè)漢字,所以前3個(gè)字節(jié)代表的是“你”

第二行輸出的是對(duì)十六進(jìn)制的字節(jié)進(jìn)行解碼,用“utf-8”的形式重新解碼,所以這里被還原成“你好”

例子

name='你好'

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

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

輸出結(jié)果

b'\xc4\xe3\xba\xc3'

你好

分析:第一行輸出是用"gbk"方式對(duì)“你好”進(jìn)行編碼,由于gbk是2個(gè)字符代表一個(gè)漢字,所以這里可以看到,前2個(gè)代表一個(gè)漢字,后2個(gè)代表一個(gè)漢字,

同樣的這里也可以被解碼重新還原為原字符串

bytearray()

以一個(gè)字節(jié)組的形式輸出數(shù)據(jù)

用法與bytes()類似,但這里這個(gè)數(shù)組里的元素是可變的,bytes是不可變數(shù)據(jù)類型,而bytearray像名稱一樣可使用append等方法;

chr()

參數(shù)是(0~255)整數(shù),返回的其實(shí)是ASCII碼對(duì)應(yīng)的字符

dict()

創(chuàng)建字典的函數(shù)

例子

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

輸出結(jié)果

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

分析:這種創(chuàng)建字典的方式key只能是字符串,不能是數(shù)字、布爾值等,創(chuàng)建出的字典key是寫入等式的前面,等式后面寫的是value

例子2

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

輸出結(jié)果

{'a': 1, 2: 3}

分析:這里是用可迭代對(duì)象創(chuàng)造字典,即通過二元組列表創(chuàng)建

dir()

打印某一個(gè)對(duì)象下面都有哪些方法

例子

print(dir(str))

輸出結(jié)果

['__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()

實(shí)現(xiàn)a除以b,然后返回商與余數(shù)的元組。如果兩個(gè)參數(shù)a,b都是整數(shù),那么會(huì)采用整數(shù)除法,結(jié)果相當(dāng)于(a//b, a % b)。如果a或b是浮點(diǎn)數(shù),相當(dāng)于(math.floor(a/b), a%b)。

例子

print(divmod(10,3))

輸出結(jié)果

(3, 1)

enumerate()

將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。

語(yǔ)法

enumerate(seq, [start=0])

seq--一個(gè)序列或者可迭代對(duì)象,start 下標(biāo)的開始位置

例子

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

for i in enumerate(li,1):

print(i)

輸出結(jié)果

(1, 'nicholas')

(2, 'jack')

(3, 'pony')

eval()

將字符串str當(dāng)成有效的表達(dá)式來(lái)求值并返回計(jì)算結(jié)果。

例子

#字符串轉(zhuǎn)換成字典

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

輸出結(jié)果

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

計(jì)算字符串里的表達(dá)式的值

例子

x,y = 1,2

print(eval('x + y'))

輸出結(jié)果

3

hash()

用來(lái)做哈希運(yùn)算的,只要可hash就是不可變數(shù)據(jù)類型

不可hash的就是可變數(shù)據(jù)類型

哈希是一種算法,把文件內(nèi)容進(jìn)行一個(gè)運(yùn)算,最終得出一個(gè)值

得出的結(jié)果長(zhǎng)度是固定的,不能根據(jù)結(jié)果反推原來(lái)的內(nèi)容

本函數(shù)返回對(duì)象的哈希值。返回的哈希值是使用一個(gè)整數(shù)表示,通常使用軟件校驗(yàn)。

例子

name = "nick"

print(hash(name))

name = "nicholas"

print(hash(name))

?

輸出結(jié)果

5166927391536352230

分析:對(duì)name進(jìn)行哈希運(yùn)算返回一個(gè)值,如果中途被修改,哈希值也會(huì)變化

help()

查看幫助,查看某個(gè)函數(shù)怎么用

例子

print(help(dir))

查看dir的用法

hex()、oct()、bin()

bin()將十進(jìn)制轉(zhuǎn)換為二進(jìn)制

hex()將十進(jìn)制轉(zhuǎn)換為十六進(jìn)制

oct()將十進(jìn)制轉(zhuǎn)換為八進(jìn)制

isinstance()

函數(shù)來(lái)判斷一個(gè)對(duì)象是否是一個(gè)已知的類型,類似 type()。

例子

print(isinstance(1,int))

print(isinstance("a",str))

輸出

True

True

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

locals()、globals()

這兩個(gè)函數(shù)主要提供,基于字典的訪問局部和全局變量的方式。

globals打印全局變量,還有一些系統(tǒng)提供的全局變量

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,其他都是系統(tǒng)提供的全局變量

ord()

ord() 函數(shù)是 chr() 函數(shù)(對(duì)于8位的ASCII字符串)或 unichr() 函數(shù)(對(duì)于Unicode對(duì)象)的配對(duì)函數(shù),它以一個(gè)字符(長(zhǎng)度為1的字符串)作為參數(shù),返回對(duì)應(yīng)的 ASCII 數(shù)值

pow()

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

pow(x,y,z)方法是x的y次方得到一個(gè)值,之后再用這個(gè)值對(duì)z進(jìn)行取余

例子

print(pow(2,5,3))

print(pow(2,5))

輸出結(jié)果

232

reversed()

reversed函數(shù)返回一個(gè)反轉(zhuǎn)的迭代器。即取反,取反的對(duì)象可以是列表、字符串、元組,或者range

例子

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

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

輸出結(jié)果

[4, 3, 2, 1]

分析:第一行輸出,直接打印reversed輸出的是一個(gè)反轉(zhuǎn)的迭代器,要用list方法可以進(jìn)行顯示列表。

round()

返回浮點(diǎn)數(shù)x的四舍五入值。

set()

創(chuàng)建一個(gè)集合

slice()

切片對(duì)象,主要用在切片操作函數(shù)里的參數(shù)傳遞。

語(yǔ)法

slice(start, stop[, step])

例子

l = "hello world !"

s1 = slice(0,4)

print(l[s1])

輸出結(jié)果

hell

例子2

l = "aeiou world !"

s2 = slice(0,4,2)

print(l[s2])

輸出結(jié)果

ai

分析:這里加了步長(zhǎng)。

sorted()

對(duì)所有可迭代的對(duì)象進(jìn)行排序操作。內(nèi)建函數(shù) sorted 方法返回的是一個(gè)新的 list,而不是在原來(lái)的基礎(chǔ)上進(jìn)行的操作。

list 的 sort 方法返回的是對(duì)已經(jīng)存在的列表進(jìn)行操作

sorted 方法不能針對(duì)不同類型進(jìn)行排序

例子

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

print(sorted(l))

輸出結(jié)果

[1, 2, 3, 5, 8]

sorted()語(yǔ)法

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

iterable -- 可迭代對(duì)象。key -- 主要是用來(lái)進(jìn)行比較的元素,只有一個(gè)參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對(duì)象中

reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認(rèn))。

?

例子

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

輸出結(jié)果

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

str()

將任意類型轉(zhuǎn)換為字符串

sum()

對(duì)系列進(jìn)行求和計(jì)算。

語(yǔ)法

sum(iterable[, start])

例子

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

print(sum(li))

print(sum(li,2))

輸出結(jié)果

15

17

分析:第二行輸出是先對(duì)列表求和,再加上參數(shù)2再次求和。

type()

查看某一對(duì)象的數(shù)據(jù)類型

例子

msg = "123"

if type(msg) is str :

msg = int(msg)

res = msg + 5

print(res)

vars()

對(duì)象object的屬性和屬性值的字典對(duì)象。

查看對(duì)象的屬性和值,如果沒有參數(shù)和locals功能一樣。

如果有就顯示該對(duì)象的所有方法名

print(vars(int))

二、zip()

用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表或者字典。

zip()可以傳2個(gè)參數(shù),只要是序列就可以(列表、元組、字符串)

例子

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

輸出結(jié)果

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

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

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

分析:第一行輸出的是zip的對(duì)象,要轉(zhuǎn)換為列表用list的方法

zip的左右兩個(gè)參數(shù)序列是一一對(duì)應(yīng)的關(guān)系,如果有多的自動(dòng)忽略

例子2

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

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

輸出結(jié)果

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

分析:這樣就可以把字典中的元素提取出來(lái)

例子

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

輸出結(jié)果

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

分析:這里可以直接將zip對(duì)象轉(zhuǎn)為字典。

三、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())))

輸出結(jié)果

age4

28

(28, 'age3')

分析:print(max(dic))語(yǔ)句默認(rèn)比較的是字典的key,進(jìn)行字符串的比較,一個(gè)字符一個(gè)字符的比較,根據(jù)字符的ASCII碼進(jìn)行比較

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

第三行輸出是首先將字典用zip方法將字典的value和key組成一個(gè)一一對(duì)應(yīng)的元組,然后直接比較這個(gè)元組的大小

具體

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

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

#這里也是一個(gè)可迭代對(duì)象

for i in v:

print(i)

輸出結(jié)果

(18, 'age1')

(25, 'age4')

(19, 'age2')

(28, 'age3')

這里通過for循環(huán)可以看出zip(dic.values(),dic.keys())是一個(gè)元組

例子2

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

print(max(l))

輸出結(jié)果

(5, 'a')

分析:這里是從第一個(gè)值進(jìn)行比較,5、3、2進(jìn)行比較,如果有結(jié)果,后面的就不用比較了

例子3

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

print(max(l))

輸出結(jié)果

c5

分析:這里也是一個(gè)字符一個(gè)字符的比較。

max()的高級(jí)用法

max(iterable,key = func)

iterable--可迭代對(duì)象,func--對(duì)對(duì)象的元素處理邏輯

例子

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

輸出結(jié)果

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

分析:這里是對(duì)列表中每個(gè)元素進(jìn)行for循環(huán),即字典進(jìn)行取出“age”對(duì)應(yīng)的value進(jìn)行比較,同時(shí)輸出value最大值的元素,與map函數(shù)進(jìn)行for循環(huán)類似。

x["age"]是對(duì)列表的每個(gè)元素進(jìn)行索引,而非對(duì)列表進(jìn)行索引,因?yàn)檫@個(gè)max()函數(shù)對(duì)要處理的可迭代對(duì)象進(jìn)行了類似for循環(huán)處理。

min()函數(shù)與max()用法類似,max()求最大值,min()求最小值

總結(jié)

以上是生活随笔為你收集整理的python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。