python学习之内置函数(二)
4.7.3 內(nèi)置函數(shù)(2)
int() str() bool() set() list():將一個可迭代對象轉(zhuǎn)化為列表 tuple():將一個可迭代對象轉(zhuǎn)換成元組
dic(): 通過相應(yīng)的方式創(chuàng)建字典
print()輸出到屏幕
源碼 print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)file: 默認(rèn)是輸出到屏幕,如果設(shè)置為文件句柄,輸出到文件sep: 打印多個值之間的分隔符,默認(rèn)為空格end: 每一次打印的結(jié)尾,默認(rèn)為換行符flush: 立即把內(nèi)容輸出到流文件,不作緩存 #示例 print(1,2,3,4,sep= ',') #打印多個值之間的分隔符,默認(rèn)為空格 print(111,end='-') #每一次打印的結(jié)尾,默認(rèn)為換行符 print(222) #輸出 1,2,3,4 111-222abs()返回絕對值
print(abs(-100)) #輸出100sum()數(shù)字相加求和
不支持元素嵌套類型的
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()最小值
比較數(shù)值大小,比較的對象必須是同類型的元素
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是可以加函數(shù)名,min自動會獲取傳入函數(shù)中的參數(shù)的每個元素,然后通過你設(shè)定的返回值比較大小,返回最小的傳入的那個參數(shù)。
#當(dāng)沒有指定比較元素時,會默認(rèn)比較第一個元素 print(min((1,2,3,4),(6,7))) #輸出 (1,2,3,4) print(min((8,2,3,4),(6,7))) #輸出 (6,7)#加key可以指定比較兩個元組的第三個位置數(shù)值的大小 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的練習(xí)
# 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']) #輸出 25max()最大值
用法語min一樣
bytes() 把字符串轉(zhuǎn)換成bytes類型
#把字符轉(zhuǎn)成字節(jié) #方法一: 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轉(zhuǎn)換成字符串 print(str(b,encoding='utf-8'))zip()拉鏈
? zip()用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元祖組成的內(nèi)容,如果各個迭代器的元素個數(shù)不一致,則按照長度最短的返回。
l1 = [1,2,3,4] l2 = ['a','s','b'] l3 = ('喝','汽','水','吧') print(zip(l1,l2,l3)) #返回的時一個迭代器的內(nèi)存地址 #輸出<zip object at 0x000001D979C45308>print(list(zip(l1,l2,l3))) #輸出[(1, 'a', '喝'), (2, 's', '汽'), (3, 'b', '水')]sorted()排序函數(shù)
默認(rèn)從小到大
reverse = True表示從大到小排序
普通版:
對可迭代對象的每一個元素進(jìn)行排序,以新的列表的形式輸出
print(sorted((4,2,3,4))) #輸出 [2, 3, 4, 4] print(sorted('34231')) #輸出 ['1', '2', '3', '3', '4']帶key版
根據(jù)想要hi教的內(nèi)容配合函數(shù)進(jìn)行排序
l1 = [('蓋倫', 80), ('皇子', 75), ('女警', 7), ('趙信', 59)] #按照數(shù)字進(jìn)行排序 print(sorted(l1,key=lambda x:x[1])) #按照數(shù)字倒序排序 print(sorted(l1,key=lambda x:x[1],reverse=True))# 字典排序返回的就是排序后的key dic = {1:'a',3:'c',2:'b'} print(sorted(dic))sorted同樣可以配合函數(shù)和lambda進(jìn)行排序
lst = [{'id':1,'name':'蓋倫','age':22},{'id':2,'name':'皇子','age':25},{'id':3,'name':'趙信','age':23},] #按照年齡進(jìn)行排序 print(sorted(lst,key=lambda x:x['name']))filter()篩選過濾
語法: filter(function,iterable)
function: 用來篩選的函數(shù),在filter中會自動的把iterable中的元素傳遞給function,然后根據(jù)function返回的True或者False來判斷是否保留此項數(shù)據(jù)
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()
映射函數(shù)
語法: map(function,iterable) 可以對可迭代對象中的每一個元素進(jìn)映射,分別取執(zhí)行function
返回一個生成器,要用next觸發(fā)map()
# map 返回一個迭代器,相當(dāng)于生成器表達(dá)式:循環(huán)模式 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] 計算兩個列表中相同位置的數(shù)據(jù)的和 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的作用是先把列表中的前倆個元素取出計算出一個值然后臨時保存著,接下來用這個臨時保存的值和列表中第三個元素進(jìn)行計算,求出一個新的值將最開始臨時保存的值覆蓋掉,然后在用這個新的臨時值和列表中第四個元素計算,以此類推。
? 在Python2.x版本中recude是直接 import就可以的, Python3.x版本中需要從functools這個包中導(dǎo)入
python2中使用方法
語法:reduce(函數(shù)名,可迭代對象)
ret = reduce(func,[3,4,5,6,7]) print(ret) #輸出25python3中使用
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轉(zhuǎn)載于:https://www.cnblogs.com/jjzz1234/p/11069752.html
總結(jié)
以上是生活随笔為你收集整理的python学习之内置函数(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一次缓存系统的优化过程
- 下一篇: 计算机网络运输层习题5-13