一、內置函數 1,數據類型:int,bool .......... 2,數據結構:dict,list,tuple,set,str 3,reversed--保留原列表,返回一個反序的迭代器 4,slice切片 l =(1,2,23,213,5612,234,43) sli =slice(1,5,2) ...
一、內置函數
1,數據類型:int,bool ..........
2,數據結構:dict,list,tuple,set,str
3,reversed--保留原列表,返回一個反序的迭代器
reversed() l =[1,2,3,4,5] l2 =reversed(l) print(l2)
4,slice切片
l =(1,2,23,213,5612,234,43) sli =slice(1,5,2) print(l[sli])
#(2,213)
5,format
print(format('test', '<20')) print(format('test', '>40')) print(format('test', '^40'))
6,bytes
#bytes 轉換成bytes類型
# 我拿到的是gbk編碼的,我想轉成utf-8編碼
# print(bytes('你好',encoding='GBK')) # unicode轉換成GBK的bytes
# print(bytes('你好',encoding='utf-8')) # unicode轉換成utf-8的bytes
7,bytearray
b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])
7,zip
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)
8,all
只有有一個為false則返回false
9,any
只要有一個為True則為True
10,filter
執行了filter之後的結果集合一定是《= 執行之前的個數
#filter只管篩選,不會改變原來的值
11,map
#執行前後元素的個數不變,值可能發生改
12,sorted
#用c語言編寫。 數據少、短、且要保留原來的列表 二、匿名函數def add(x,y): return x+y
轉換成匿名函數為:
add = lambda x,y:x+y print(add(1,2))
1,找出value值最大的key
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)
2,說出代碼的最終結果
d = lambda p:p*2 t = lambda p:p*3 x = 2 x = d(x) #x = 4 x = t(x) #x = 12 x = d(x) #x = 24 print(x) #--->24
3、
#現有兩元組(('a'),('b')),(('c'),('d')),
# 請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]
ret = zip((('a'),('b')),(('c'),('d'))) ret = map(lambda t:{t[0]:t[1]},ret) print(list(ret))
4,以下代碼的輸出是什麼?請給出答案並解釋。 def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) 請修改multipliers的定義來產生期望的結果。
def multipliers(): return (lambda x:i*x for i in range(4))#改為生成器 print([m(2) for m in multipliers()])