首頁>Club>
def prime(b):     if b 
10
回覆列表
  • 1 # 野生演算法協會

    內建函式filter()

    描述:filter() 函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

    該接收兩個引數,第一個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判斷,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。

    過濾器,構造一個序列,等價於:[ item for item in iterables if function(item)]

    在函式中設定過濾條件,逐一迴圈迭代器中的元素,將返回值為True時的元素留下,形成一個filter型別資料。

    語法:filter(function, iterable)

    引數:

    function -- 判斷函式。

    iterable -- 可迭代物件。

    可以看我前期文章,63個內建函式的詳細應用

  • 2 # 資料鍊金術師

    可能是對filter的返回規則不熟悉造成的

    它返回的是,篩選滿足條件為True的實際變數值的迭代器,而不是True或False這兩個布林值。

    注意:py2.7返回的是list列表,py3.X返回的是迭代器

    這個函式的兩個引數,需要解釋一下

    第一個引數,要求是一個函式,比如你這個自定義的帶變數引數的函式prime

    第二個引數,是作為你這個自定義函式的變數輸入的序列或迭代器,比如你的這個range(1,100)

    其實你如果想要返回布林值

    可能根本用不到filter這個函式

    應該只需要把下面的列表生成器改為:

    L = [ prime(i) for i in range(1,100) ]

    即可實現你想要的效果

    最後建議同時關注map函式

    map用法與其類似

    而且py2和py3返回規則也不一樣

  • 中秋節和大豐收的關聯?
  • 我們所說的5G是怎麼來的,它的原理是什麼?