gpt4 book ai didi

python - 减少嵌套列表,扩展或 append 列表的功能

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:06 24 4
gpt4 key购买 nike

我的问题有两个方面。首先,Python 中是否有一种方法可以减少 JSON 对象/列表中的冗余嵌套?作为一个简单的例子,它的行为如下:

In [1]: reducer([1])
Out[1]: [1]
In [2]: reducer([[[1]]])
Out[2]: [1]
In [3]: reducer({"menu": {"header": "menu", "items": [[{"id": 81}]]}})
Out[3]: {"menu": {"header": "menu", "items": [{"id": 81}]}}

第二,python有没有原生的extend_or_append函数?该函数的行为如下:

In [1]: tt = []
In [2]: extend_or_append(tt,1)
Out[2]: [1]
In [3]: extend_or_append(tt,[2,3,4,5])
Out[3]: [1,2,3,4,5]

如果这个功能不存在,什么是实现它的可靠方法?

最佳答案

你的第二个问题很简单。

def extend_or_append(this, that):
if isinstance(that, list):
this.extend(that)
else:
this.append(that)
return this

第一个有点棘手

def flatten(l):
for el in l:
if isinstance(el, collections.Iterable) and not isinstance(el, basestring):
for sub in flatten(el):
yield sub
else:
yield el

res = list(flatten([[[[[1]]]]]))

关于python - 减少嵌套列表,扩展或 append 列表的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25008327/

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