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

Python嵌套列表轉(zhuǎn)一維的方法(壓平嵌套列表)

 更新時間:2018年07月03日 14:28:31   投稿:jingxian  
今天小編就為大家分享一篇Python嵌套列表轉(zhuǎn)一維的方法(壓平嵌套列表),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前一段去云英面試,技術(shù)官很”不厚道“了問了一個非常簡單的問題:如何將多維列表轉(zhuǎn)化了一維的?當(dāng)時雖然想到了使用迭代或者列表生成式可以做到,但是可以沒能可行的代碼,回來后一頓后悔。

對于規(guī)范的且嵌套維度較低的多維列表,python中有很多方法可以實現(xiàn):

a=[[1,2],[3,4],[5,6]]
print [j for i in li for j in i]
#or
from itertools import chain
print list(chain(*a))
#or
import itertools
a = [[1,2,3],[4,5,6], [7], [8,9]]
out = list(itertools.chain.from_iterable(a))
#or
a=[[1,2],[3,4],[5,6]]
t=[]
[t.extend(i) for i in a]
print t
#or
a=[[1,2],[3,4],[5,6]]
print sum(a,[])
#or
reduce(lambda x, y: x+ y, a)

對于復(fù)雜的多維嵌套列表就需要使用一些復(fù)雜的方法:

#遞歸的方法比較容易理解
def expand_list(nested_list):
  for item in nested_list:
    if isinstance(item, (list, tuple)):
      for sub_item in expand_list(item):
        yield sub_item
    else:
      yield item
      
#在stackoverflow看到大牛的列表生成式版本
func = lambda x: [y for l in x for y in func(l)] if type(x) is list else [x]
#生成式的方法還有很多,可以自行摸索

對于使用python2.X的童鞋,還可以使用flatten函數(shù)來做:

>>> d=[1,2,3,[4,5],[6,7,[8,9]]]
>>>from compiler.ast import flatten
>>>flatten(a)
[1, 2, 3, 4, 5, 6,7,8,9]

其實上邊列舉的方法僅僅是冰山一角,大海下的冰山就等這童鞋們自行去尋找挖掘了。

以上這篇Python嵌套列表轉(zhuǎn)一維的方法(壓平嵌套列表)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用cookielib庫示例分享

    python使用cookielib庫示例分享

    Python中cookielib庫(python3中為http.cookiejar)為存儲和管理cookie提供客戶端支持,下面是使用示例
    2014-03-03
  • python空元組在all中返回結(jié)果詳解

    python空元組在all中返回結(jié)果詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python空元組在all中返回結(jié)果詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • Python中的模塊和包概念介紹

    Python中的模塊和包概念介紹

    這篇文章主要介紹了Python中的模塊和包概念介紹,本文講解了模塊概述、模塊名稱空間、導(dǎo)入模塊、導(dǎo)入模塊屬性(from … import …)、包等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼

    基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼

    這篇文章主要介紹了基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Numpy 多維數(shù)據(jù)數(shù)組的實現(xiàn)

    Numpy 多維數(shù)據(jù)數(shù)組的實現(xiàn)

    這篇文章主要介紹了Numpy 多維數(shù)據(jù)數(shù)組的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python刪除指定字符之前或之后所有內(nèi)容的方法

    Python刪除指定字符之前或之后所有內(nèi)容的方法

    本文主要介紹了Python刪除指定字符之前或之后所有內(nèi)容的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python?sns.countplot()?繪畫條形圖詳情

    python?sns.countplot()?繪畫條形圖詳情

    這篇文章主要介紹了python?sns.countplot()繪畫條形圖詳情,sns.countplot()用于畫類別特征的頻數(shù)條形圖,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-06-06
  • Python如何通過ip2region解析IP獲得地域信息

    Python如何通過ip2region解析IP獲得地域信息

    這篇文章主要介紹了Python如何通過ip2region解析IP獲得地域信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python socket實現(xiàn)的簡單通信功能示例

    Python socket實現(xiàn)的簡單通信功能示例

    這篇文章主要介紹了Python socket實現(xiàn)的簡單通信功能,結(jié)合實例形式分析了Python socket通信的相關(guān)概念、原理、客戶端與服務(wù)器端實現(xiàn)技巧以及socketserver模塊多并發(fā)簡單實現(xiàn)方法,需要的朋友可以參考下
    2018-08-08
  • python實現(xiàn)媒體播放器功能

    python實現(xiàn)媒體播放器功能

    這篇文章主要為大家詳細介紹了python實現(xiàn)媒體播放器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論