python map(fun,[arg]+)函數(shù)最少有兩個(gè)參數(shù),第一參數(shù)為一個(gè)函數(shù)名,第二個(gè)參數(shù)是對(duì)應(yīng)的這個(gè)函數(shù)的參數(shù)(一般為一個(gè)或多個(gè)list)。
enumerate() 函數(shù)
語(yǔ)法 以下是 enumerate() 方法的語(yǔ)法:
enumerate(sequence, [start=0])
參數(shù) sequence – 一個(gè)序列、迭代器或其他支持迭代對(duì)象。
start – 下標(biāo)起始位置
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print( i, element)
0 one
1 two
2 three
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print( list(enumerate(seasons)))
##[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print( list(enumerate(seasons, start=1)) ) # 下標(biāo)從 1 開始
##[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
map()
def fun(x):
return x+1
print(list(map(fun,[1,2,3])))
#[2,3,4]
def p(x):
return x**2
a = [1,2,3,4]
map(p,a)
lambda表達(dá)式:有人說(shuō)類似于一種匿名函數(shù),通常是在需要一個(gè)函數(shù),但是又不想費(fèi)神去命名一個(gè)函數(shù)的場(chǎng)合下使用。
s = [1,2,3]
print(list(map(lambda x:x+1,s)))
#[2,3,4]
這里的 lambda x:x+1 相當(dāng)于 上面的fun()函數(shù), lambda和(冒號(hào)): 之間相當(dāng)于 fun()函數(shù)的參數(shù), :(冒號(hào))之后 x+1 相當(dāng)于fun()函數(shù)的return x+1
s = [1,2,3]
print(list(map(lambda x,y,z:x*y*z ,s,s,s)))
#[1,8,27]
map和lambda表達(dá)式聯(lián)合使用
a = [2,5,6]
print(list(map(lambda x:x*10,a)))
#[20, 50, 60]
print(a)
#[2, 5, 6]
內(nèi)置函數(shù)列表
https://www.runoob.com/python/python-built-in-functions.html
open()
f = open('test.txt')
f.read()
zip(a,b)
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 打包為元組的列表
#[(1, 4), (2, 5), (3, 6)]
filter() 函數(shù)用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
.str.format
print("網(wǎng)站名:{name}, 地址 {url}".format(name="菜鳥教程", url="www.runoob.com"))
"{1} {0} {1}".format("hello", "world") # 設(shè)置指定位置
print("網(wǎng)站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必須的
enumerate
enumerate()函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合轉(zhuǎn)換為一個(gè)索引序列,一般用于for循環(huán)中,同時(shí)列出元素和元素的索引號(hào)。
my_list = ['a', 'b', 'c', 'd']
for i, x in enumerate(my_list):
print i, x
my_list = ['a', 'b', 'c', 'd']
for item in enumerate(my_list):
print item
eval
eval(source, globals=None, locals=None)
eval() 函數(shù)用來(lái)執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式的值。
x = 3
result = eval('4*x')
print(result) # 12
result = eval('x**3')
print(result) # 27
result = eval('3+3')
print(result) # 6
result = eval('x*x')
print(result)
sorted
sorted()函數(shù),接收任何可迭代對(duì)象,返回一個(gè)排序后的新對(duì)象。
l1 = [2, 4, 3, 1, "6", "a", 5, 9, 7]
new_l1 = sorted(l1)
print(new_l1)
#[1, 2, 3, 4, 5, 7, 9, '6', 'a']
sorted()函數(shù)可對(duì)任意可迭代對(duì)象進(jìn)行排序
l3 = ['a', 'A', 'b', 'B', 'c', 'C']
new_l3 = sorted(l3)
print(new_l3)
#['A', 'B', 'C', 'a', 'b', 'c']
key參數(shù)的值是一個(gè)函數(shù),他對(duì)list中的每個(gè)原始執(zhí)行操作后作為排序依據(jù)。
new_list1 = sorted(l1, key=lambda x: x * -1)
print(new_list1)
l4 = [['aa', 2], ['bb', 1], ['cc', 3]]
new_l4 = sorted(l4, key=lambda x: x[1])
print(new_l4)
#[['bb', 1], ['aa', 2], ['cc', 3]]
1.lambda lambda其實(shí)就是一條語(yǔ)句,lambda(x):body。x是lambda函數(shù)的參數(shù),參數(shù)可以有任意多個(gè)(包括可選參數(shù));body是函數(shù)體,只能是一個(gè)表達(dá)式,并且直接返回該表達(dá)式的值。
f=lambda x:x+1
f(2) #3
(lambda x,y:x+y)(2,3) #5
2.filter filter(func, list)接受兩個(gè)參數(shù):一個(gè)函數(shù)func和一個(gè)列表list,返回一個(gè)列表。函數(shù)func只能有一個(gè)參數(shù)。filter的功能:列表中所有元素作為參數(shù)傳遞給函數(shù),返回可以另func返回真的元素的列表
l=[‘a(chǎn)bc’,‘a(chǎn)cd’,‘1245’,‘ddad’,‘a(chǎn)aa’]
func(s)
return s.startswith(‘a(chǎn)’)
filter(func, l)
#[‘a(chǎn)bc’,‘a(chǎn)cd’,‘a(chǎn)aa’]
filter為過(guò)濾list,并返回list,綁定的函數(shù)為一個(gè)返回bool值的函數(shù)
filter(lambda item:item>2,[1,2,3,4])
#[3,4]
def fun(x):
return x>2 and x<6
list=[1,2,3,4,5,6,7]
filter(fun,list)
#[3,4,5]
3.zip zip函數(shù)接受任意多個(gè)序列作為參數(shù),將所有序列按相同的索引組合成一個(gè)元素是各個(gè)序列合并成的tuple的新序列,新的序列的長(zhǎng)度以參數(shù)中最短的序列為準(zhǔn)。另外(*)操作符與zip函數(shù)配合可以實(shí)現(xiàn)與zip相反的功能,即將合并的序列拆成多個(gè)tuple
x=[1,2,3],y=[‘a(chǎn)’,‘b’,‘c’]
zip(x,y)
[(1,‘a(chǎn)’),(2,‘b’),(3,‘c’)]
zip(*zip(x,y))
[(1,2,3),(‘a(chǎn)’,‘b’,‘c’)]
.
x=[1,2,3],y=[‘a(chǎn)’,‘b’,‘c’]
for a,b in zip(x,y)
print(a,b)
4.map為操作list,返回list,綁定的函數(shù)為修改list中每一個(gè)值的函數(shù)
list=[1,2,3]
map(lambda x : x*2,list)
#[2, 4, 6]
5.reduce為逐次操作list里的每項(xiàng),接收的參數(shù)為 2個(gè),最后返回的為一個(gè)結(jié)果
def myadd(x,y):
return x+y
sum=reduce(myadd,(1,2,3))
#6
def add(x, y) : # 兩數(shù)相加
return x + y
reduce(add, [1,2,3,4,5]) # 計(jì)算列表和:1+2+3+4+5
15
reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函數(shù)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
