如何从嵌套元组列表中获取元组?这是我尝试过的:
from itertools import chain
l = [[[('key1', b'val1', b'val1.2'),[('key2', b'val2'),('key3', b'val3'),('key4', b'val4')]]]]
l2 = list(chain.from_iterable(l)) # tried
print(l2)
[[('key1', b'val1', b'val1.2'), [('key2', b'val2'), ('key3', b'val3'), ('key4', b'val4')]]]
需要这样的输出:
[('key1', b'val1', b'val1.2'),('key2', b'val2'),('key3', b'val3'),('key4', b'val4')]
答案 0 :(得分:0)
尝试使用此递归生成器:
l = [[[('key1', b'val1', b'val1.2'),[('key2', b'val2'),('key3', b'val3'),('key4', b'val4')]]]]
def all_tuples(nested):
for item in nested:
if isinstance(item, list):
yield from all_tuples(item)
else:
assert isinstance(item, tuple)
yield item
print(list(all_tuples(l)))
# [('key1', b'val1', b'val1.2'), ('key2', b'val2'), ('key3', b'val3'), ('key4', b'val4')]