gpt4 book ai didi

python - 将嵌套数据集转换为平面数据集,同时保留足够的数据以将其转换回嵌套集

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:15 24 4
gpt4 key购买 nike

假设我有一个像这样的数据集

(1, 2, (3, 4), (5, 6), (7, 8, (9, 0)))

我想将其转换为(半)平面表示形式,例如

(
(1, 2),
(1, 2, 3, 4),
(1, 2, 5, 6),
(1, 2, 7, 8),
(1, 2, 7, 8, 9, 0),
)

如果你使用这个,(取自 SO)

def flatten(iterable):
for i, item in enumerate(iterable):
if hasattr(item, '__iter__'):
for nested in flatten(item):
yield nested
else:
yield item

这会将它转换成一个列表(迭代后)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

但是我不能从这个reperenstation 得到原件,而我可以从第一个得到原件。 (如果每个元组只有 2 个元素)

最佳答案

这将给出示例输出。不过,不知道这是否真的是表示您想要的模型的最佳方式...

def combineflatten(seq):
items= tuple(item for item in seq if not isinstance(item, tuple))
yield items
for item in seq:
if isinstance(item, tuple):
for yielded in combineflatten(item):
yield items+yielded

>>> tuple(combineflatten((1, 2, (3, 4), (5, 6), (7, 8, (9, 0)))))
((1, 2), (1, 2, 3, 4), (1, 2, 5, 6), (1, 2, 7, 8), (1, 2, 7, 8, 9, 0))

关于python - 将嵌套数据集转换为平面数据集,同时保留足够的数据以将其转换回嵌套集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com