使用python實現多維資料降維操作
阿新 • • 發佈:2020-02-25
一,首先介紹下多維列表的降維
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,(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()函式來生成的。
補充:將一個多維陣列徹底的降維
廢話不多說,直接上程式碼
const flattenDeep = arr => Array.isArray(arr) ? arr.reduce((a,b) => [...a,...flattenDeep(b)],[]) : [arr];
以上這篇使用python實現多維資料降維操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。