1. 程式人生 > 實用技巧 >python基礎-filter函式

python基礎-filter函式

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))