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