Python的filter函式學習

2021-08-14 04:35:56 字數 1156 閱讀 8222

利用filter函式解決列出素數和回數問題

函式等說明

filter(),作用為篩選,接受乙個篩選函式和乙個序列,篩選函式作用於序列的每乙個元素,根據篩選函式的返回值(true或者false)決定該序列中的該元素是否保留,返回值是乙個iterator,該結果可以用list()函式返回乙個列表。

lambda表示式:定義方法——以冒號為分隔前面為引數,後面為表示式,如lambda x,y,z:x+y+z def _not_divisible(n): return lambda x: x % n > 0

雙冒號作用:【開始:結束:步數】,當開始結束都沒有表示整個序列,返回乙個序列

實現埃式篩法得到素數序列

埃式篩法:給定乙個從2開始自然數範圍,每次從序列中篩出第乙個數,在刪除序列中所有2的倍數,得到新序列,在重複篩選刪除操作。

#在該**中先寫乙個函式生成器用來生成從3開始的奇數序列,然後寫乙個篩選函式,在該篩選函式中引數為每次篩選的數,返回乙個lambda表示式,該表示式用來刪除篩選數的倍數

deff

(): n = 1

while

true:

n = n + 2

yeild n

deff1

(n):

return

lambda x:x % n > 0

deff2

():yield

2 l = f()

while

true:

n = next(l)

yield n

l = filter(f1(n),l)

for m in f2():

if m < 1000:

print(m)

else:

break

列出回數

#寫乙個篩選函式,判斷乙個數是否是回數

defscreen

(n):

return str(n) == str(n)[::-1]

output = filter(screen,range(1,1000))

print(list(output))

python中的filter 函式

接收兩個引數,乙個函式 f和乙個list,這個函式 f對list中 的每個元素進行判斷,返回true或false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件的元素組成的新的list。舉個例子 例如,要從乙個list 1,4,6,7,9,12,17 中刪除偶數,保留奇數,首先...

python中的filter 函式

1.語法 filter 函式用於過濾序列,過濾掉不符合條件的元素,返回符合條件的元素組成新列表 filter function,fiterable function 函式,fiterable為序列序列中的每個元素作為引數傳遞給函式進行判斷,返回true或者false,最後將會返回true的元素放到新...

python中的filter 函式

filter 函式用於過濾序列,過濾掉不符合條件的元素,返回符合條件的元素組成新列表。filter 語法如下 filter function,iterable 其中function為函式,iterable為序列 序列中的每個元素作為引數傳遞給函式進行判斷,返回true或者false,最後將返回tru...