python基礎-filter函式
阿新 • • 發佈:2020-11-24
filter:過濾,過濾器
根據字面意思就是過濾,或篩選匹配的東西
先看需求;有一組list,需要篩選出某個條件的元素,組成新的list。沒學filter肯定用for迴圈。
直接for迴圈
list_a=['sb_alex_nb','sb_wupeiqi','linhaifeng_nb','sb_yuanhao'] list_b=[] for i in list_a: # if "sb" not in i: if not i.startswith('sb'): list_b.append(i) print(list_b)
增加功能,可選擇篩選sb開頭的,或者nb結尾的
list_a = ['sb_alex_nb', 'sb_wupeiqi', 'linhaifeng_nb', 'sb_yuanhao'] def sb_check(i): return i.startswith('sb') def nb_check(i): return i.endswith('nb') def test(func, array): list_b = [] for i in array: if func(i): list_b.append(i) return list_b res_1= test(sb_check, list_a) res_2 = test(nb_check, list_a) print(res_1) print(res_2)
這其實完成的就是filter函式的功能,對iterable的元素for迴圈進行func查詢,篩選滿足條件的
filter格式:filter(func,interable)
list_a = ['sb_alex_nb', 'sb_wupeiqi', 'linhaifeng_nb', 'sb_yuanhao'] res = filter(lambda x: x.startswith('sb'), list_a) print(res)print(list(res))