欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

列表拼接三種方式

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

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

方式一:簡簡單單的“+”

>>> 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

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

方法二:切片賦值

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

>>> 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

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

列表去重的三種方式

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

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

利用集合set的特性

第一種方法(大家第一個都會想到的吧):利用集合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è)置鍵對應(yīng)的值),返回一個由序列的元素作為鍵,設(shè)置的值作為所有鍵的值的字典,值省略的話所有鍵的值將默認(rèn)為None;如果設(shè)置了值的話所有的鍵將會賦予同一個值,看例子:

>>> 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)的索引
通過判斷列表中值第一次出現(xiàn)的索引值與遍歷的計(jì)數(shù)器的游標(biāo)cursor值是否相等,相等的話則是第一次出現(xiàn),否則是重復(fù)出現(xiàn)。看例子:

>>> 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python的多重繼承的理解

    python的多重繼承的理解

    這篇文章主要介紹了python的多重繼承的理解的相關(guān)資料,多重繼承不是多容易理解,這里舉例說明幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2017-08-08
  • python中類和實(shí)例如何綁定屬性與方法示例詳解

    python中類和實(shí)例如何綁定屬性與方法示例詳解

    最近在學(xué)習(xí)python,純粹是自己的興趣愛好,然而并沒有系統(tǒng)地看python編程書籍,覺得上面描述過于繁瑣,在網(wǎng)站找了一些學(xué)習(xí)的網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于python中類和實(shí)例時如何綁定屬性與方法的相關(guān)資料,需要的朋友可以參考下。
    2017-08-08
  • Python3.5 處理文本txt,刪除不需要的行方法

    Python3.5 處理文本txt,刪除不需要的行方法

    今天小編就為大家分享一篇Python3.5 處理文本txt,刪除不需要的行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python 計(jì)算方位角實(shí)例(根據(jù)兩點(diǎn)的坐標(biāo)計(jì)算)

    python 計(jì)算方位角實(shí)例(根據(jù)兩點(diǎn)的坐標(biāo)計(jì)算)

    今天小編就為大家分享一篇python 計(jì)算方位角實(shí)例(根據(jù)兩點(diǎn)的坐標(biāo)計(jì)算),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 一篇文章弄懂Python關(guān)鍵字、標(biāo)識符和變量

    一篇文章弄懂Python關(guān)鍵字、標(biāo)識符和變量

    這篇文章主要給大家介紹了關(guān)于Python關(guān)鍵字、標(biāo)識符和變量的相關(guān)資料,Python關(guān)鍵詞是Python保留的具有特定含義的特殊詞語,用于執(zhí)行某些操作,Python標(biāo)識符是用戶定義的名稱,而變量是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,存儲對象的內(nèi)存地址,以便引用對象的值,需要的朋友可以參考下
    2021-07-07
  • python代碼 FTP備份交換機(jī)配置腳本實(shí)例解析

    python代碼 FTP備份交換機(jī)配置腳本實(shí)例解析

    這篇文章主要介紹了python代碼 FTP備份交換機(jī)配置腳本實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)的掃碼工具居然這么好用!

    Python實(shí)現(xiàn)的掃碼工具居然這么好用!

    二維碼作為一種信息傳遞的工具在當(dāng)今社會發(fā)揮了重要作用.從手機(jī)用戶登錄到手機(jī)支付,生活的各個角落都能看到二維碼的存在.那你知道二維碼是怎么解析的嗎?有想過自己實(shí)現(xiàn)一個掃碼工具嗎?如果想的話就繼續(xù)看下去吧!需要的朋友可以參考下
    2021-06-06
  • 用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法

    用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法

    這篇文章主要介紹了用python實(shí)現(xiàn)英文字母和相應(yīng)序數(shù)轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • pytorch實(shí)現(xiàn)用Resnet提取特征并保存為txt文件的方法

    pytorch實(shí)現(xiàn)用Resnet提取特征并保存為txt文件的方法

    今天小編大家分享一篇pytorch實(shí)現(xiàn)用Resnet提取特征并保存為txt文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python自動發(fā)郵件庫yagmail的示例代碼

    python自動發(fā)郵件庫yagmail的示例代碼

    本篇文章主要介紹了python自動發(fā)郵件庫yagmail的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論