最初の質問:
1次元のリストに、任意の2次元リスト:
a = [[1,2,3,4],[6,8,9,6]]
def fun1(a):
for i in a:
for j in i:
yield j
print(list(fun1(a)))
#输出为:[1,2,3,4,6,8,9,6]
発電機は、任意の2つの次元のリストに変換達成するために使用することができるので、一次元関数のリストである
ので、一次元のリストに任意の多次元リストを達成するために、再帰的なジェネレータの使用と併せて考慮。
2番目の質問:
変換任意の多次元リストは1次元のリストです。
b = [1,2,34,[3,1,54,[1223,432,[3,6,2]]],[3,5,2,[3,4,2]],[1,2,3]]
def fun2(b):
try:
for i in b:
for j in fun2(i):
yield j
except TypeError:
yield b
print(list(fun2(b)))
#输出为:[1, 2, 34, 3, 1, 54, 1223, 432, 3, 6, 2, 3, 5, 2, 3, 4, 2, 1, 2, 3]