使用python實現(xiàn)多維數(shù)據(jù)降維操作
一,首先介紹下多維列表的降維
def flatten(a): for each in a: if not isinstance(each,list): yield each else: yield from flatten(each) if __name__ == "__main__": a = [[1,2],[3,[4,5]],6] print(list(flatten(a)))
二、這種降維方法同樣適用于多維迭代器的降維
from collections import Iterable def flattern(a): for i in a: if not isinstance(i,Iterable) or isinstance(i,str): yield i else: yield from flattern(i) if __name__ == "__main__": a = [[1,2],(3,4,tuple(5,)),["6,7,8"],[9,range(10,20,1)]] print(list(flattern(a)))
iterable:可迭代的,迭代器,在Python中iterable被認為是一個對象,這個對象可以一次返回它的一個成員(也就是對象里面的元素),Python中的string,list,tuple,dict,file,xrange都是可迭代的,都屬于iterable對象,可迭代的對象都是可以遍歷的,實際上Python中有很多iterable類型是使用iter()函數(shù)來生成的。
補充:將一個多維數(shù)組徹底的降維
廢話不多說,直接上代碼
const flattenDeep = arr => Array.isArray(arr) ? arr.reduce((a, b) => [...a, ...flattenDeep(b)], []) : [arr];
以上這篇使用python實現(xiàn)多維數(shù)據(jù)降維操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python編程中的文件讀寫及相關(guān)的文件對象方法講解
這篇文章主要介紹了Python編程中的文件讀寫及相關(guān)的文件對象方法講解,其中文件對象方法部分講到了對文件內(nèi)容的輸入輸出操作,需要的朋友可以參考下2016-01-01
Python序列對象與String類型內(nèi)置方法詳解
這篇文章主要介紹了Python序列對象與String類型內(nèi)置方法,結(jié)合實例形式分析了Python序列對象與String類型各種常見內(nèi)置方法相關(guān)使用技巧及操作注意事項,需要的朋友可以參考下2019-10-10
Python+wxPython實現(xiàn)將圖片轉(zhuǎn)換為草圖
將照片轉(zhuǎn)換為藝術(shù)風格的草圖是一種有趣的方式,可以為您的圖像添加獨特的效果,本文主要介紹了如何Python和wxPython來實現(xiàn)這一目標,需要的可以參考下2023-08-08

