【发布时间】:2021-05-19 18:05:42
【问题描述】:
我想扁平化这样的列表:
l = ["af", 2, [4.123, "ic", [-8, ["xdr"], -6]], [], [-2]]
结果应该是:
f = ['af', 2, 4.123, 'ic', -8, 'xdr', -6, -2]
列表l 和所有子列表可以有任意长度,可以包含任何类型的数据,并且可以包含任意深度的嵌套子列表。
我找不到任何关于我的问题的已回答问题,也找不到任何包含解决方案的包。
我的简单代码可以做到我想要的,但我确信解决方案已经存在。
l = ["af",2,[4.123,"ic",[-8,["xdr"],-6]],[],[-2]]
f = []
x = [1]
def flatten (val):
if type(val) != type(x):
f.append(val)
else:
for i in range(0,len(val)):
flatten(val[i])
for i in range(0,len(l)):
flatten(l[i])
print(f)
# output is ['af', 2, 4.123, 'ic', -8, 'xdr', -6, -2]
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/2158395/…
-
@Green Cloak Guy:是的,这个解决方案解决了我的问题!所以似乎没有内置函数可以进行展平。