最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)列表拼接和去重的三種方式

 更新時(shí)間:2021年07月02日 11:46:17   作者:一擼程猿  
本文主要介紹了Python實(shí)現(xiàn)列表拼接和去重,詳細(xì)的介紹了列表拼接和列表去重三種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

列表拼接三種方式

列表拼接主要有以下三種方式:

  • 最簡(jiǎn)單的使用“+”;
  • 使用切片賦值的方法;
  • 使用列表自帶的extend方法

方式一:簡(jiǎn)簡(jiǎn)單單的“+”

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> id(list1)
4408465160
>>> id(list2)
4408325512
>>> list1 = list1 + list2
>>> list1
[1, 2, 3, 4, 5, 6]
>>> id(list1)
4408504776

此方法易于理解,但你會(huì)發(fā)現(xiàn)其實(shí)list1已經(jīng)不是原來(lái)那個(gè)list1了,list1的id值已經(jīng)發(fā)生改變。

方法二:切片賦值

在這里,我們發(fā)現(xiàn)使用切片賦值的拼接就地執(zhí)行,即它會(huì)修改原來(lái)的列表,但易讀性不高

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> id(list1)
4408465160
>>> id(list2)
4408504776
>>> list1[len(list1):len(list1)] = list2
>>> list1
[1, 2, 3, 4, 5, 6]
>>> id(list1)
4408465160

方式三:列表自帶的extend()

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> id(list1)
4408325512
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6]
>>> id(list1)
4408325512

這里,你會(huì)發(fā)現(xiàn)列表自帶的extend()也是就地執(zhí)行,即它會(huì)修改原來(lái)的列表,直接在原來(lái)的列表后面拼接新列表。
綜合上面三種方式,第一種的使用“+”拼接需要易于理解,但卻不是就地執(zhí)行,而是新開辟一塊空間來(lái)存放新列表;第二種比較難于理解;還是Python列表自帶的extend()拼接列表函數(shù)較為友好。

列表去重的三種方式

例如有以下一個(gè)列表:需要你進(jìn)行去重,你能想到哪些方法呢?

num_list = [1,8,9,1,2,3,4,6,5,7,10,5,6,8,3,4]

利用集合set的特性

第一種方法(大家第一個(gè)都會(huì)想到的吧):利用集合set的特性

集合set特性:元素不能重復(fù)

>>> num_list = [1,8,9,1,2,3,4,6,5,7,10,5,6,8,3,4]
>>> new_list = list(set(num_list))
>>> new_list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

利用字典key的不可重復(fù)屬性

第二張方法(與集合擁有相同特性的):那么就是字典的鍵啦
先介紹一下函數(shù)dict.fromkeys(序列,設(shè)置鍵對(duì)應(yīng)的值),返回一個(gè)由序列的元素作為鍵,設(shè)置的值作為所有鍵的值的字典,值省略的話所有鍵的值將默認(rèn)為None;如果設(shè)置了值的話所有的鍵將會(huì)賦予同一個(gè)值,看例子:

>>> dict1 = dict.fromkeys([1,2,3,4])
>>> dict1
{1: None, 2: None, 3: None, 4: None}
>>> dict1 = dict.fromkeys([1,2,3,4],5)
>>> dict1
{1: 5, 2: 5, 3: 5, 4: 5}

那么正式使用字典鍵的特性進(jìn)行去重,看例子:

>>> num_list = [1,8,9,1,2,3,4,6,5,7,10,5,6,8,3,4]
>>> num_dict = dict.fromkeys(num_list)
>>> num_dict
{1: None, 8: None, 9: None, 2: None, 3: None, 4: None, 6: None, 5: None, 7: None, 10: None}
>>> new_list = list(num_dict.keys())
>>> new_list
[1, 8, 9, 2, 3, 4, 6, 5, 7, 10]

利用index()獲取到的是第一次出現(xiàn)的索引

第三種方式:利用index()獲取到的是第一次出現(xiàn)的索引
通過(guò)判斷列表中值第一次出現(xiàn)的索引值與遍歷的計(jì)數(shù)器的游標(biāo)cursor值是否相等,相等的話則是第一次出現(xiàn),否則是重復(fù)出現(xiàn)??蠢樱?br />

>>> num_list = [1,8,9,1,2,3,4,6,5,7,10,5,6,8,3,4]
>>> new_list = []
>>> cursor=0
>>> while cursor < len(num_list):
...     if num_list.index(num_list[cursor]) == cursor:
...           new_list.append(num_list[cursor])
...     cursor += 1
...
>>> new_list
[1, 8, 9, 2, 3, 4, 6, 5, 7, 10]

到此這篇關(guān)于Python實(shí)現(xiàn)列表拼接和去重的三種方式的文章就介紹到這了,更多相關(guān)Python列表拼接和去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux下多個(gè)Python版本安裝教程

    Linux下多個(gè)Python版本安裝教程

    這篇文章主要為大家詳細(xì)介紹了Linux下多個(gè)Python版本的安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python畫圖工具M(jìn)atplotlib庫(kù)常用命令簡(jiǎn)述

    Python畫圖工具M(jìn)atplotlib庫(kù)常用命令簡(jiǎn)述

    這篇文章主要介紹了Python畫圖Matplotlib庫(kù)常用命令簡(jiǎn)述總結(jié),文中包含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • 解決os.path.isdir() 判斷文件夾卻返回false的問題

    解決os.path.isdir() 判斷文件夾卻返回false的問題

    今天小編就為大家分享一篇解決os.path.isdir() 判斷文件夾卻返回false的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • pyecharts如何使用formatter回調(diào)函數(shù)的問題

    pyecharts如何使用formatter回調(diào)函數(shù)的問題

    這篇文章主要介紹了pyecharts如何使用formatter回調(diào)函數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python-openpyxl表格讀取寫入的案例詳解

    Python-openpyxl表格讀取寫入的案例詳解

    這篇文章主要介紹了Python-openpyxl表格讀取寫入的案例分析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python推導(dǎo)式數(shù)據(jù)處理方式

    Python推導(dǎo)式數(shù)據(jù)處理方式

    這篇文章主要介紹了Python推導(dǎo)式數(shù)據(jù)處理方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Python調(diào)試代碼的高效方法分享

    Python調(diào)試代碼的高效方法分享

    寫代碼最讓人抓狂的,不是邏輯想不明白,而是代碼跑起來(lái)——直接爆炸,所以本文小編給大家介紹如何快速找出 Bug,并解決它們,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-04-04
  • 提升Python Scrapy庫(kù)數(shù)據(jù)采集速度實(shí)現(xiàn)高效爬蟲

    提升Python Scrapy庫(kù)數(shù)據(jù)采集速度實(shí)現(xiàn)高效爬蟲

    Scrapy是一個(gè)強(qiáng)大而靈活的Python爬蟲框架,被廣泛用于數(shù)據(jù)采集、網(wǎng)站抓取和網(wǎng)絡(luò)爬蟲開發(fā),本文將深入介紹Scrapy的功能和用法,并提供豐富的示例代碼,幫助更好地理解和應(yīng)用
    2023-11-11
  • python列表中常見的一些排序方法

    python列表中常見的一些排序方法

    在Python實(shí)際開發(fā)中會(huì)經(jīng)常需要用到對(duì)列表進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于python列表中常見的一些排序方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python對(duì)兩個(gè)列表求交集的三種實(shí)現(xiàn)方法

    python對(duì)兩個(gè)列表求交集的三種實(shí)現(xiàn)方法

    本文主要介紹了python對(duì)兩個(gè)列表求交集的實(shí)現(xiàn)示例,包括使用集合、列表推導(dǎo)式和itertools.filterfalse,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評(píng)論

铅山县| 修水县| 江北区| 天气| 兴城市| 甘孜县| 本溪市| 泽普县| 宁河县| 敦煌市| 平顶山市| 融水| 天台县| 明光市| 景洪市| 社旗县| 卓尼县| 凤城市| 峨边| 天峨县| 道真| 双辽市| 阳西县| 华池县| 特克斯县| 平潭县| 庆云县| 绵阳市| 巫溪县| 南部县| 开平市| 盐边县| 马尔康县| 太保市| 安西县| 五原县| 镇安县| 中宁县| 子长县| 勐海县| 江北区|