<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 列表,能讓你的代碼更優(yōu)雅 | pythonic 小技巧

          共 3237字,需瀏覽 7分鐘

           ·

          2021-03-15 21:48

          寫 Python 代碼,列表的出鏡率是相當(dāng)高的,伴隨列表一起出現(xiàn)的往往就是一大堆 for 循環(huán),這樣的代碼多了看起來非常不簡(jiǎn)潔。作為一名 Python 程序員,怎么能忍受呢?

          那有沒有什么好辦法呢?除了列表表達(dá)式之外,其實(shí)還有一些小技巧來操作列表,可以使代碼更簡(jiǎn)潔,更優(yōu)雅。下面介紹幾個(gè)常見的使用場(chǎng)景,分享給大家。

          一、列表合并

          第一種方式:循環(huán)。

          >>> a = [123]
          >>> b = [456]
          >>> for i in b:
          ...     a.append(i)
          ...
          >>> a
          [123456]

          這種方式最不友好了,也不建議使用。

          第二種方式:使用 +

          >>> a + b
          [123456]

          第三種方式:使用 extend 關(guān)鍵字。

          >>> a.extend(b)
          >>> a
          [123456]

          后兩種方式明顯更加優(yōu)雅,推薦使用。需要說明的一點(diǎn)是,如果列表很大的話,+ 會(huì)比較慢,使用 extend 更好。

          二、列表元素去重

          使用 set() 對(duì)列表元素進(jìn)行去重。

          >>> a = [123423]
          >>> list(set(a))
          [1234]

          三、列表排序

          使用 sort() 或內(nèi)建函數(shù) sorted() 對(duì)列表進(jìn)行排序。它們之間的區(qū)別有兩點(diǎn):

          1. sort() 方法是對(duì)原列表進(jìn)行操作,而 sorted() 方法會(huì)返回一個(gè)新列表,不是在原來的基礎(chǔ)上進(jìn)行操作。

          2. sort() 是應(yīng)用在列表上的方法,而 sorted() 可以對(duì)所有可迭代的對(duì)象進(jìn)行排序操作。

          # sort()
          >>> a = [123423]
          >>> a.sort()
          >>> a
          [122334]
          >>>
          >>> a = [123423]
          >>> a.sort(reverse=True)
          >>> a
          [433221]

          # sorted()
          >>> a = [123423]
          >>> sorted(a)
          [122334]
          >>> a = [123423]
          >>> sorted(a, reverse=True)
          [433221]

          四、遍歷列表的索引和元素對(duì)

          使用 enumerate() 函數(shù)可以同時(shí)輸出索引和元素值。

          >>> a = ['python''go''java']
          >>> for i, v in enumerate(a):
          ...     print(i, v)

          # output
          0 python
          1 go
          2 java

          五、查找列表中出現(xiàn)最頻繁的元素

          使用 max() 函數(shù)可以快速查找出一個(gè)列表中出現(xiàn)頻率最高的某個(gè)元素。

          >>> a = [1234345442]
          >>> b = max(set(a), key=a.count)
          >>> b
          4

          需要說明的一點(diǎn)是,當(dāng)列表中有兩個(gè)元素出現(xiàn)的次數(shù)相同時(shí),會(huì)返回第一個(gè)出現(xiàn)的元素。

          >>> a = [12]
          >>> b = max(set(a), key=a.count)
          >>> b
          1

          六、統(tǒng)計(jì)列表中所有元素的出現(xiàn)次數(shù)

          前面的代碼給出了出現(xiàn)最頻繁的值。如果想要知道列表中所有元素的出現(xiàn)次數(shù),那么可以使用 collections 模塊。collections 是 Python 中的一個(gè)寶藏模塊,它提供了很多特性。Counter 方法正好可以完美解決這個(gè)需求。

          >>> from collections import Counter
          >>>
          >>> a = [1234345442]
          >>> Counter(a)
          Counter({4422321151})

          七、將兩個(gè)列表合并為詞典

          使用 zip() 函數(shù),可以將兩個(gè)列表合并成字典。

          >>> a = ['one''tow''three']
          >>> b = [123]
          >>> dict(zip(a, b))
          {'one'1'tow'2'three'3}

          以上。

          題圖:Antranias From Pixabay

          往期精彩:

          求求你了,不要再寫循環(huán)求兩個(gè)列表的交集,并集和差集了 | pythonic 小技巧



          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  人人澡人人妻人人爽人人蜜桃 | 国产女人高潮的AV毛片 | 国产成人超碰人人澡人人澡 | 青青艹在线观看 | 97色色人人 |