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

PYTHON壓平嵌套列表的簡(jiǎn)單實(shí)現(xiàn)

 更新時(shí)間:2016年06月08日 15:12:07   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇PYTHON壓平嵌套列表的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

list 是 Python 中使用最頻繁的數(shù)據(jù)類型, 標(biāo)準(zhǔn)庫(kù)里面有豐富的函數(shù)可以使用。

不過(guò),如果把多維列表轉(zhuǎn)換成一維列表(不知道這種需求多不多),還真不容易找到好用的函數(shù),

要知道Ruby、Mathematica、Groovy中可是有flatten的啊。

如果列表是維度少的、規(guī)則的,還算好辦

例如:

li=[[1,2],[3,4],[5,6]]
print [j for i in li for j in i]
#or
from itertools import chain
print list(chain(*li))
#or
a=[[1,2],[3,4],[5,6]]
t=[]
[t.extend(i) for i in a]
print t
#or
print sum(li,[])

對(duì)于復(fù)雜一些的,如:li=[1,[2],[[3]],[[4,[5],6]]],上面的方法就不好使了,得換個(gè)方法了,
從結(jié)構(gòu)上看像是樹(shù)狀的,很容易聯(lián)想到了目錄的遍歷,于是就有了下面的做法:

def flat(tree):
  res = []
  for i in tree:
    if isinstance(i, list):
      res.extend(flat(i))
    else:
      res.append(i)
  return res

另一種思路,嵌套列表無(wú)非就是有很多成對(duì)的方括號(hào),一維的列表只有一對(duì),把中間的去掉就行了,轉(zhuǎn)換為字符串就好辦了

def flatten(seq):
  s=str(seq).replace('[', '').replace(']', '') #當(dāng)然也可以用正則
  return [eval(x) for x in s.split(',') if x.strip()]

不過(guò),這種做法對(duì)于列表中出現(xiàn)包含"["或"]"的字符串時(shí)就無(wú)能為力了,需要改進(jìn).

其他方法:

國(guó)外某論壇上見(jiàn)到的,同樣是遞歸,一行搞定

flat=lambda L: sum(map(flat,L),[]) if isinstance(L,list) else [L]

下面這個(gè)方法用到Tkinter模塊,在郵件列表看到的方法。估計(jì)很多同學(xué)還不知道它能辦到吧,也算是python自帶。注意,windows版的python都自帶Tkinter模塊的,linux默認(rèn)則沒(méi)有

from Tkinter import _flatten

li=reduce(lambda *x:list(x),range(2,6),[1])
print li
print _flatten(li)
#Out:
#[[[[[1], 2], 3], 4], 5]
#(1, 2, 3, 4, 5)
#對(duì)元組同樣適用

還有一些第三方模塊提供這樣的功能,如sympy、numpy、pipe等

對(duì)于嵌套的元組,無(wú)需多說(shuō)了吧,只需稍加改動(dòng)就可以了

以上這篇PYTHON壓平嵌套列表的簡(jiǎn)單實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django上使用數(shù)據(jù)可視化利器Bokeh解析

    Django上使用數(shù)據(jù)可視化利器Bokeh解析

    這篇文章主要介紹了Django上使用數(shù)據(jù)可視化利器Bokeh解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python + Chrome抓取AJAX動(dòng)態(tài)數(shù)據(jù)的兩種方法

    Python + Chrome抓取AJAX動(dòng)態(tài)數(shù)據(jù)的兩種方法

    在現(xiàn)代 Web 開(kāi)發(fā)中,AJAX技術(shù)被廣泛應(yīng)用于動(dòng)態(tài)加載數(shù)據(jù),使得網(wǎng)頁(yè)能夠在不刷新的情況下更新內(nèi)容,本文將詳細(xì)介紹 Python + Chrome 如何抓取 AJAX 動(dòng)態(tài)數(shù)據(jù),并提供兩種方法的完整實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2025-04-04
  • 淺談DataFrame和SparkSql取值誤區(qū)

    淺談DataFrame和SparkSql取值誤區(qū)

    今天小編就為大家分享一篇淺談DataFrame和SparkSql取值誤區(qū),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 簡(jiǎn)單聊聊PyTorch里面的torch.nn.Parameter()

    簡(jiǎn)單聊聊PyTorch里面的torch.nn.Parameter()

    torch.nn.parameter是一個(gè)被用作神經(jīng)網(wǎng)絡(luò)模塊參數(shù)的tensor,這是一種tensor的子類,下面這篇文章主要給大家介紹了關(guān)于PyTorch里面的torch.nn.Parameter()的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Python OpenCV使用dlib進(jìn)行多目標(biāo)跟蹤詳解

    Python OpenCV使用dlib進(jìn)行多目標(biāo)跟蹤詳解

    這篇文章主要為大家介紹了如何使用 dlib 庫(kù)在實(shí)時(shí)視頻中有效地跟蹤多個(gè)對(duì)象,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定幫助,需要的可以參考一下
    2022-03-03
  • Python報(bào)錯(cuò)ValueError:?cannot?convert?float?NaN?to?integer的解決方法

    Python報(bào)錯(cuò)ValueError:?cannot?convert?float?NaN?to?intege

    在Python編程中,我們經(jīng)常需要處理各種數(shù)據(jù)類型,包括浮點(diǎn)數(shù)和整數(shù),然而,有時(shí)候我們可能會(huì)遇到一些意外的情況,比如將一個(gè)包含NaN(Not?a?Number)的浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)時(shí),就會(huì)拋出錯(cuò)誤,本文將探討這個(gè)錯(cuò)誤的原因,并給出幾種可能的解決方案,需要的朋友可以參考下
    2024-09-09
  • Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作總結(jié)【7種方法】

    Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作總結(jié)【7種方法】

    這篇文章主要介紹了Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作,結(jié)合實(shí)例形式總結(jié)分析了二叉樹(shù)的前序、中序、后序、層次遍歷中的迭代與遞歸等7種操作方法,需要的朋友可以參考下
    2019-03-03
  • Python嵌套函數(shù)與nonlocal使用詳細(xì)介紹

    Python嵌套函數(shù)與nonlocal使用詳細(xì)介紹

    這篇文章主要介紹了Python嵌套函數(shù)與nonlocal使用,nonlocal關(guān)鍵字與global關(guān)鍵字有點(diǎn)相似,可以對(duì)比著理解。nonlocal關(guān)鍵字只能作用域局部變量,且始終找離當(dāng)前最近的上層局部作用域中的變量
    2022-09-09
  • 基于Python開(kāi)發(fā)高效文件搜索與內(nèi)容匹配工具

    基于Python開(kāi)發(fā)高效文件搜索與內(nèi)容匹配工具

    在日常的開(kāi)發(fā)和辦公中,查找和篩選特定文件或文件內(nèi)容的需求十分常見(jiàn),本文將基于PyQt6開(kāi)發(fā)一個(gè)文件搜索工具,有需要的小伙伴可以參考一下
    2025-03-03
  • python軟件都是免費(fèi)的嗎

    python軟件都是免費(fèi)的嗎

    在本篇文章中小編給大家整理的是關(guān)于python軟件免是否費(fèi)的相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。
    2020-06-06

最新評(píng)論

贞丰县| 永城市| 神池县| 沁源县| 永川市| 临泉县| 岳西县| 和田县| 玉门市| 金昌市| 聊城市| 双辽市| 大城县| 长寿区| 廊坊市| 苏州市| 巴东县| 永平县| 科尔| 成武县| 彰武县| 安国市| 海宁市| 宝兴县| 潮州市| 汨罗市| 佛冈县| 连江县| 怀集县| 马公市| 新营市| 绥棱县| 马山县| 太白县| 布拖县| 屯门区| 平利县| 武功县| 乐清市| 宕昌县| 泰顺县|