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-222abs()返回絕對值
print(abs(-100)) #輸出100sum()數字相加求和
不支持元素嵌套類型的
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']) #輸出 25max()最大值
用法語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) #輸出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轉載于:https://www.cnblogs.com/jjzz1234/p/11069752.html
總結
以上是生活随笔為你收集整理的python学习之内置函数(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一次缓存系统的优化过程
- 下一篇: 数据结构(python)