利用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...