小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

像這樣操作 Python 列表,能讓你的代碼更優(yōu)雅

 copy_left 2021-03-16

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

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

一、列表合并

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

>>> a = [1, 2, 3]>>> b = [4, 5, 6]>>> for i in b:...     a.append(i)...>>> a[1, 2, 3, 4, 5, 6]

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

第二種方式:使用 +。

>>> a + b[1, 2, 3, 4, 5, 6]

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

>>> a.extend(b)>>> a[1, 2, 3, 4, 5, 6]

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

二、列表元素去重

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

>>> a = [1, 2, 3, 4, 2, 3]>>> list(set(a))[1, 2, 3, 4]

三、列表排序

使用 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 = [1, 2, 3, 4, 2, 3]>>> a.sort()>>> a[1, 2, 2, 3, 3, 4]>>>>>> a = [1, 2, 3, 4, 2, 3]>>> a.sort(reverse=True)>>> a[4, 3, 3, 2, 2, 1]# sorted()>>> a = [1, 2, 3, 4, 2, 3]>>> sorted(a)[1, 2, 2, 3, 3, 4]>>> a = [1, 2, 3, 4, 2, 3]>>> sorted(a, reverse=True)[4, 3, 3, 2, 2, 1]

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

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

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

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

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

>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]>>> b = max(set(a), key=a.count)>>> b4

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

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

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

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

>>> from collections import Counter>>>>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]>>> Counter(a)Counter({4: 4, 2: 2, 3: 2, 1: 1, 5: 1})

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

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

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

以上。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多