<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          不要在 Python 中使用循環(huán),這些方法其實更棒!

          共 2291字,需瀏覽 5分鐘

           ·

          2022-08-11 19:58

          推薦關注↓

          我們知道在 Python 中使用循環(huán)速度是很慢,如果你正在處理類似的情況,那該怎么辦呢?

          在本文中,我將給大家分享可用于替代 Python 循環(huán)的方法和案例:

          • Map
          • Filter
          • Reduce

          在開始使用上述函數(shù)之前,如果你還不熟悉 lambda 函數(shù),讓我們快速了解一下。

          Lambda 函數(shù)是常規(guī)函數(shù)的替代方法。它可以在一行代碼中定義,因此在我們的代碼中占用更少的時間和空間。例如,在下面的代碼中,我們可以看到 lambda 函數(shù)的作用。

          def multiply_by_2(x):
              x*2

          lambda 函數(shù)

          lambda x: x*2

          注意:最好使用 lambda 函數(shù)而不是常規(guī)函數(shù)。

          1、Map

          使用 map 函數(shù),我們可以將函數(shù)應用于可迭代對象(列表、元組等)的每個值。

          map(function, iterable) 

          假設我們想在一個列表(可迭代對象)中得到一個正方形的數(shù)字。我們將首先創(chuàng)建一個 square() 函數(shù)來查找數(shù)字的平方。

          def square(x):
              return x*x

          然后,我們將使用 map 函數(shù)將 square() 函數(shù)應用于輸入數(shù)字列表。

          input_list = [23456]
          # Without lambda 
          result = map(square, input_list)
          # Using lambda function 
          result = map(lambda x: x*x, input_list)
          # converting the numbers into a list
          list(result)
          # Output: [4, 9, 16, 25, 36]

          2、Filter

          直觀地說,filter 函數(shù)用于從可迭代對象(列表、元組、集合等)中過濾掉值。過濾條件在作為參數(shù)傳遞給過濾器函數(shù)的函數(shù)內(nèi)設置。

          filter(function, iterable)

          我們將使用 filter 函數(shù)來過濾小于 10 的值。

          def less_than_10(x):
              if x < 10:
                  return x 

          然后,我們將使用 Filter 函數(shù)將 less_than_10() 函數(shù)應用于值列表。

          input_list = [2345101214
          # Without lambda
          list(filter(less_than_10, input_list))
          # using lambda function 
          list(filter(lambda x: x < 10, input_list))
          # Output: [2, 3, 4, 5]

          3、Reduce

          Reduce 函數(shù)與 map 和 filter 函數(shù)有點不同。它迭代地應用于可迭代對象的所有值,并且只返回一個值。

          在下面的示例中,通過應用加法函數(shù)來減少數(shù)字列表。最終輸出將是列表中所有數(shù)字的總和,即 15。讓我們創(chuàng)建一個添加兩個輸入數(shù)字的addition() 函數(shù)。

          def addition(x,y):
              return x + y

          接下來,為了獲得列表中所有數(shù)字的總和,我們將把這個加法函數(shù)作為參數(shù)應用到 reduce 函數(shù)。

          from functools import reduce
          input_list = [12345]
          # Without Lambda function
          reduce(addition, input_list))
          # With Lambda function
          reduce(lambda x,y: x+y, input_list))
          # Output: 15

          長按或掃描下方二維碼,后臺回復:加群,即可申請入群。一定要備注:來源+研究方向+學校/公司,否則不拉入群中,見諒!

          長按三秒,進入后臺


          推薦閱讀

          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕超碰在线播放 | 麻豆免费成人视频 | 国产黄色一级电影 | 一本色道久久综合无码人妻四虎 | 婷婷丁香大香蕉 |