匿名函數基本格式: func= lambda i : ret # i 是形參,ret 是返回值 func() #調用匿名函數 內置函數: 1.reverse(註意,都是返回的貼帶起,如果想看內容,就要用for方法) 2.slice,format 3.bytes,bytearray # 切片 —— 字 ...
# add = lambda x,y:x+y # print(add(1,2)) # dic={'k1':10,'k2':100,'k3':30} # def func(key): # return dic[key] # print(max(dic,key=func)) #根據返回值判斷最大值,返回值最大的那個參數是結果 # print(max(dic,key=lambda key:dic[key])) # max([1,2,3,4,5,-6,-7],key=abs)
匿名函數基本格式: func= lambda i : ret # i 是形參,ret 是返回值
func() #調用匿名函數
#現有兩元組(('a'),('b')),(('c'),('d')), # 請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}] 解決思路:首先用拉鏈ZIP方法先排好兩個元祖,然後聯想到有關的內置函數,再將字典變成列表類型輸出 # max min sorted filter map !和匿名函數有關聯的5個內置函數考點 # 匿名函數 == 內置函數 # zip 拉鏈排序方法,內置函數之一 # ret = zip((('a'),('b')),(('c'),('d'))) # res = map(lambda tup:{tup[0]:tup[1]},ret) # print(list(res)) # def multipliers(): # return [lambda x:i*x for i in range(4)] # print([m(2) for m in multipliers()])
內置函數:
1.reverse(註意,都是返回的貼帶起,如果想看內容,就要用for方法)
# reversed() # l = [1,2,3,4,5] # l.reverse() # print(l) # l = [1,2,3,4,5] # l2 = reversed(l) # print(l2) # 保留原列表,返回一個反向的迭代器
2.slice,format
# l = (1,2,23,213,5612,342,43) # sli = slice(1,5,2) # print(l[sli]) # print(l[1:5:2]) # print(format('test', '<20')) # print(format('test', '>40')) # print(format('test', '^40'))
3.bytes,bytearray
#bytes 轉換成bytes類型 # 我拿到的是gbk編碼的,我想轉成utf-8編碼 # print(bytes('你好',encoding='GBK')) # unicode轉換成GBK的bytes # print(bytes('你好',encoding='utf-8')) # unicode轉換成utf-8的bytes # 網路編程 只能傳二進位 # 照片和視頻也是以二進位存儲 # html網頁爬取到的也是編碼 # b_array = bytearray('你好',encoding='utf-8') # print(b_array) # print(b_array[0]) # '\xe4\xbd\xa0\xe5\xa5\xbd' # s1 = 'alexa' # s2 = 'alexb'
# 切片 —— 位元組類型 不占記憶體
# 位元組 —— 字元串 占記憶體
4.ord,unicode轉換為數字表示,chr,數字轉換為unicode表示
# print(ord('好')) # print(ord('1')) # print(chr(97))
5.repr,完全複製
# print('你好%r'%name) # print(repr('1')) # print(repr(1))
6.all,有一個false,則返回false, any有一個true,則返回true
# print(all(['a','',123])) # print(all(['a',123])) # print(all([0,123])) # print(any(['',True,0,[]]))
7.5個超重要函數,zip(拉鏈) ,filter(篩選) , map(遍歷) ,sort (在原列表排序), sorted(生成新列表),
# l = [1,2,3,4,5] # l2 = ['a','b','c','d'] # l3 = ('*','**',[1,2]) # d = {'k1':1,'k2':2} # for i in zip(l,l2,l3,d): # print(i)
# from math import sqrt # def func(num): # res = sqrt(num) # return res % 1 == 0 # ret = filter(func,range(1,101)) # for i in ret: # print(i) # ret = map(abs,[1,-4,6,-8]) # print(ret) # for i in ret: # print(i) # filter 執行了filter之後的結果集合 <= 執行之前的個數 #filter只管篩選,不會改變原來的值 # map 執行前後元素個數不變 # 值可能發生改變 # l = [1,-4,6,5,-10] # # l.sort(key = abs) # 在原列表的基礎上進行排序 # # print(l) # # print(sorted(l,key=abs,reverse=True)) # 生成了一個新列表 不改變原列表 占記憶體 # print(l) # l = [' ',[1,2],'hello world'] # new_l = sorted(l,key=len) # print(new_l)