中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現列表拼接和去重的方法有哪些

發布時間:2021-07-02 15:44:16 來源:億速云 閱讀:229 作者:chen 欄目:開發技術

本篇內容主要講解“Python實現列表拼接和去重的方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python實現列表拼接和去重的方法有哪些”吧!

目錄
  • 列表拼接三種方式

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

    • 方法二:切片賦值

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

  • 列表去重的三種方式

    • 利用集合set的特性

    • 利用字典key的不可重復屬性

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

列表拼接三種方式

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

  • 最簡單的使用“+”;

  • 使用切片賦值的方法;

  • 使用列表自帶的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

此方法易于理解,但你會發現其實list1已經不是原來那個list1了,list1的id值已經發生改變。

方法二:切片賦值

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

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

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

列表去重的三種方式

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

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

利用集合set的特性

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

集合set特性:元素不能重復

>>> 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的不可重復屬性

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

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

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

>>> 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()獲取到的是第一次出現的索引

第三種方式:利用index()獲取到的是第一次出現的索引
通過判斷列表中值第一次出現的索引值與遍歷的計數器的游標cursor值是否相等,相等的話則是第一次出現,否則是重復出現。看例子:

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

到此,相信大家對“Python實現列表拼接和去重的方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

息烽县| 林西县| 永修县| 嵩明县| 嘉峪关市| 三亚市| 南木林县| 江达县| 齐齐哈尔市| 溧阳市| 额敏县| 长兴县| 柞水县| 廊坊市| 调兵山市| 左云县| 辽宁省| 海阳市| 乐山市| 那曲县| 同仁县| 通州区| 呼图壁县| 沙湾县| 嘉峪关市| 永寿县| 洱源县| 全州县| 闽侯县| 阳城县| 阆中市| 杨浦区| 手游| 东兰县| 额尔古纳市| 右玉县| 南漳县| 北宁市| 崇州市| 宁河县| 德化县|