前沿拓展:
filter函數(shù)
f來(lái)自ilter函數(shù)的用法,下面進(jìn)行舉例說(shuō)明:
例如一個(gè)公司,需要找出年銷(xiāo)售額超過(guò)2000萬(wàn)的城市銷(xiāo)售金額,這個(gè)利用簡(jiǎn)單的表達(dá)式已無(wú)法解決,根據(jù)FILTER來(lái)實(shí)現(xiàn)。
1、銷(xiāo)售總額 = sum('銷(xiāo)售明細(xì)'[銷(xiāo)售額])
2、再建一個(gè)度量值[大于2000萬(wàn)的城市銷(xiāo)售金額]= CALCULATE([銷(xiāo)售總額],F(xiàn)ILTER(ALL('門(mén)店城市'),[銷(xiāo)售總額]>20000000))。
3、超過(guò)
過(guò)濾函數(shù)格式:filter(函數(shù),可迭代參數(shù))
# 利用過(guò)濾函數(shù)filter將列表中的空值過(guò)濾掉,0是空值,負(fù)數(shù)不算空值
numbers = [3, 8, 0, -2, 9, 15, -1, 0, 45]
# filter第一個(gè)參數(shù)為None時(shí),就代表過(guò)濾空值
result = filter(None, numbers)
print(list(result))
輸出結(jié)果:
[3, 8, -2, 9, 15, -1, 45]
# 利用filter和lambda過(guò)濾掉奇數(shù),形成一個(gè)新的偶數(shù)列表
numbers = [3, 8, 0, -2, 9, 15, -1, 0, 45]
result = filter(lambda x: x % 2 == 0, numbers)
print(list(result))
輸出結(jié)果:
[8, 0, -2, 0]
# 利用filter和lambda把列表中的數(shù)字過(guò)濾出來(lái)
list1 = ['abc', 98, '34', 0, 9, 'uiy', 'jike', -5]
result = filter(lambda x: type(x) == int, list1)
print(list(result))
輸出結(jié)果:
[98, 0, 9, -5]
# 利用過(guò)濾函數(shù)把列表中的數(shù)字和字符串型的數(shù)字過(guò)濾出來(lái)
list1 = ['abc', 98, '34', 0, 9, 'uiy', 'jike', -5]
result = filter(lambda x: isinstance(x, int) or x.isdigit(), list1)
print(list(result))
輸出結(jié)果:
[98, '34', 0, 9, -5]
# 利用過(guò)濾函數(shù)將字典里成績(jī)大于90的學(xué)生數(shù)據(jù)過(guò)濾出來(lái)
dict1 = {'張三': 90, '李四': 85, '王五': 80, '趙六': 92, '田七': 75, '周八': 100}
result = filter(lambda x: x[1] >= 90, dict1.items())
print(dict(result))
輸出結(jié)果:
{'張三': 90, '趙六': 92, '周八': 100}
拓展知識(shí):
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://cxzzxj.cn/36925.html