一,首先介紹下多元清單的降維
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()函數來生成的。
補充:将一個多元數組徹底的降維
廢話不多說,直接上代碼
const flattenDeep = arr =>
Array.isArray(arr)
? arr.reduce((a, b) => [...a, ...flattenDeep(b)], [])
: [arr];
以上這篇使用python實作多元資料降維操作就是小編分享給大家的全部内容了,希望能給大家一個參考,也希望大家多多支援菜鳥教程www.piaodoo.com。