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

Python實現(xiàn)嵌套列表的7中方法總結(jié)

 更新時間:2023年03月03日 14:07:07   作者:Python數(shù)據(jù)挖掘  
這篇文章主要來給大家講解一個Python的進階知識點:如何將一個嵌套的大列表展開形成一個列表。小編提供了7種方法供大家學(xué)習(xí)參考,希望大家能喜歡

大家好,今天給大家講解一個Python的進階知識點:如何將一個嵌套的大列表展開形成一個列表。

小編提供了7種方法供大家學(xué)習(xí)參考:

  • for循環(huán)
  • 列表推導(dǎo)式
  • 使用第三方庫itertools
  • 使用sum函數(shù)
  • python自加(+=)
  • 使用extend函數(shù)
  • 使用遞歸函數(shù)

模擬數(shù)據(jù)

data = [[1,2,3],[4],[5,6,7],[8,9],[10]]  # 模擬數(shù)據(jù)  
  
data  

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

這份模擬的數(shù)據(jù)有2個特點:

  • 嵌套列表只有兩層
  • 里面的元素也全部是列表類型

方式1:for循環(huán)

最容易想到的方式就是for循環(huán):

for i in data:  
    print(type(i))  
<class 'list'>  
<class 'list'>  
<class 'list'>  
<class 'list'>  
<class 'list'>  
# 導(dǎo)入Iterable 模塊  
from collections import Iterable   
  
sum_data = []  
  
for i in data:  
    if isinstance(i,Iterable):  # 如果可迭代(比如列表形式)  
        for j in i:  # 再次循環(huán)追加元素  
            sum_data.append(j)    
    else:  
        sum_data.append(i)  # 否則直接追加  
          
sum_data  

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

方式2:列表推導(dǎo)式

for循環(huán)能夠?qū)崿F(xiàn),那么列表推導(dǎo)式肯定也可以:

sum_data = [i for j in data  if isinstance(j,Iterable) for i in j]  # 循環(huán)一定是從大到小  
  
sum_data  

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

方式3:使用itertools庫

借助第三方的庫itertools:

import itertools  
  
# 通過chain方法從可迭代對象中生成;最后展開成列表  
  
sum_data = list(itertools.chain.from_iterable(data))  
sum_data  

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

方式4:使用sum函數(shù)

sum_data = sum(data, [])  
sum_data  

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

方式5:Python自加

sum_data = []  
  
for i in data:  
    sum_data += i  # 實現(xiàn)自加  
      
sum_data  

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

方式6:extend函數(shù)

如何快速理解python的extend函數(shù),給個案例

# 如何理解python的extend函數(shù)  
  
list1 = [1,2,3,4]  
list1.extend([5,6])  # 追加功能extend;就地修改  
  
list1  # list1已經(jīng)發(fā)生了變化  

[1, 2, 3, 4, 5, 6]  

sum_data = []   
  
for i in data:  
    sum_data.extend(i)   # 對空列表逐步追加  
      
sum_data  

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

方式7:使用遞歸函數(shù)

data  

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

def flatten(data):  # 定義遞歸函數(shù)  
    sum_data = []  
    for i in data:  
        if isinstance(i, Iterable):  # 如果i是可迭代的對象(列表等),調(diào)用函數(shù)本身;直到執(zhí)行else語句  
            sum_data.extend(flatten(i))  
        else:  
            sum_data.append(i)  
      
    return sum_data  
sum_data = flatten(data)  # 調(diào)用遞歸函數(shù)  
sum_data  

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

后續(xù)

本文的數(shù)據(jù)有特殊點:嵌套只有兩層,且里面的元素全部是列表;后面會考慮非全部列表的數(shù)據(jù)(比如列表和數(shù)字組合的嵌套列表等)和多層嵌套。

到此這篇關(guān)于Python實現(xiàn)嵌套列表的7中方法總結(jié)的文章就介紹到這了,更多相關(guān)Python嵌套列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python的類變量和成員變量用法實例教程

    python的類變量和成員變量用法實例教程

    這篇文章主要介紹了python的類變量和成員變量用法,是學(xué)習(xí)Python程序設(shè)計所必須牢固掌握的,需要的朋友可以參考下
    2014-08-08
  • 解決Pycharm 包已經(jīng)下載,但是運行代碼提示找不到模塊的問題

    解決Pycharm 包已經(jīng)下載,但是運行代碼提示找不到模塊的問題

    今天小編就為大家分享一篇解決Pycharm 包已經(jīng)下載,但是運行代碼提示找不到模塊的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用tensorflow框架在Colab上跑通貓狗識別代碼

    使用tensorflow框架在Colab上跑通貓狗識別代碼

    這篇文章主要介紹了使用tensorflow框架在Colab上跑通貓狗識別代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python繪圖時,坐標軸負號顯示不出來的解決

    python繪圖時,坐標軸負號顯示不出來的解決

    這篇文章主要介紹了python繪圖時,坐標軸負號顯示不出來的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python樹的重建實現(xiàn)示例

    Python樹的重建實現(xiàn)示例

    樹的重建是一種從給定的遍歷序列中恢復(fù)原樹結(jié)構(gòu)的算法,本文就來介紹一下Python樹的重建實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法

    python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法

    這篇文章主要介紹了python應(yīng)用程序在windows下不出現(xiàn)cmd窗口的辦法,適用于python寫的GTK程序并用py2exe編譯的情況下,需要的朋友可以參考下
    2014-05-05
  • Pandas數(shù)據(jù)清洗函數(shù)總結(jié)

    Pandas數(shù)據(jù)清洗函數(shù)總結(jié)

    本文主要介紹了Pandas數(shù)據(jù)清洗函數(shù)總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python處理字節(jié)串:struct.pack和struct.unpack使用

    Python處理字節(jié)串:struct.pack和struct.unpack使用

    這篇文章主要介紹了Python處理字節(jié)串:struct.pack和struct.unpack使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • python實現(xiàn)字符串和數(shù)字拼接

    python實現(xiàn)字符串和數(shù)字拼接

    今天小編就為大家分享一篇python實現(xiàn)字符串和數(shù)字拼接,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python跨文件全局變量的實現(xiàn)方法示例

    Python跨文件全局變量的實現(xiàn)方法示例

    我們在使用Python編寫應(yīng)用的時候,有時候會遇到多個文件之間傳遞同一個全局變量的情況。所以下面這篇文章主要給大家介紹了關(guān)于Python跨文件全局變量的實現(xiàn)方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12

最新評論

台南市| 手机| 云和县| 许昌市| 阳春市| 金堂县| 新邵县| 桃源县| 姜堰市| 兰州市| 南木林县| 五大连池市| 荃湾区| 姚安县| 台南市| 巨野县| 宝鸡市| 维西| 衡东县| 玉门市| 花垣县| 荔波县| 房山区| 广宁县| 昭觉县| 阜新| 云和县| 六安市| 阿拉善右旗| 北宁市| 敖汉旗| 乌拉特后旗| 铜鼓县| 闵行区| 通榆县| 溧阳市| 扎兰屯市| 昌乐县| 英山县| 资阳市| 彭泽县|