<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處理的基礎題目

          共 1637字,需瀏覽 4分鐘

           ·

          2022-06-10 03:57

          大家好,我是皮皮。

          一、前言

          前幾天在Python最強王者交流群【Chloe】問了一道Python處理的問題,如下圖所示。

          原始數(shù)據(jù)如下:

          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]

          期望得到的結果是:

          [0,?1,?2,?3,?4,?5,?6,?7,?8,?9,?4]

          二、實現(xiàn)過程

          方法一

          這里【老松鼠】給了一份代碼,如下所示:

          import?itertools
          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]

          final_lst?=?[x[0]?for?x?in?itertools.groupby(origin_lst)]
          #?final_lst?=?[k?for?k,?g?in?itertools.groupby(origin_lst)]
          print(final_lst)

          運行之后,得到的結果可以滿足預期,如下圖所示:

          方法二

          后來【瑜亮老師】也給了一份代碼,使用列表推導式,如下所示:

          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]

          res?=?[origin_lst[i]?for?i?in?range(len(origin_lst))?if?i?==?0?or?origin_lst[i]?!=?origin_lst[i?-?1]]
          print(res)

          運行結果如下圖所示:

          順利的幫助粉絲解決了問題。

          方法三

          后來在【Siris】給了一個基礎的方法,如下所示:

          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]

          result?=?[origin_lst[0]]
          for?i?in?range(1,?len(origin_lst)):
          ????if?origin_lst[i]?!=?origin_lst[i-1]:
          ????????result.append(origin_lst[i])
          print(result)

          運行結果如下圖所示:

          方法四

          后來在【Siris】還給了一個生成器的方法,如下所示:

          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]


          def?del_adjacent(iterable):
          ????prev?=?object()
          ????for?item?in?iterable:
          ????????if?item?!=?prev:
          ????????????prev?=?item
          ????????????yield?item


          result?=?list(del_adjacent(origin_lst))
          print(result)

          運行結果如下所示:

          方法五

          后來【Chloe】自己也給了一個enumerate方法,代碼如下所示:

          origin_lst?=?[0,?0,?1,?2,?3,?4,?4,?5,?6,?6,?6,?7,?8,?9,?4,?4]

          lst_final?=?[]

          for?index,?val?in?enumerate(origin_lst):
          ????if?val?!=?origin_lst[index?-?1]:
          ????????lst_final.append(val)

          print(lst_final)

          運行結果如下圖所示:

          條條大路通羅馬,方法還是很多的!

          三、總結

          大家好,我是皮皮。這篇文章主要盤點了一道使用Python處理數(shù)據(jù)的問題,文中針對該問題給出了具體的解析和代碼實現(xiàn),一共兩個方法,幫助粉絲順利解決了問題。

          最后感謝粉絲【Chloe】提問,感謝【月神】、【瑜亮老師】、【老松鼠】給出的思路和代碼解析,感謝【dcpeng】、【馮誠】、【艾希·覺羅】等人參與學習交流。


          瀏覽 81
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  97自拍偷拍视频 | 午夜成人性 | 欧美性爱视频精品 | 爱搞搞就爱搞搞 | 免费看黄A级毛片成人片 |