【问题标题】:Flatten a list of lists independent on content types and length and depth of sublists [duplicate]展平独立于内容类型以及子列表长度和深度的列表列表[重复]
【发布时间】: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]

【问题讨论】:

标签: python list flatten


【解决方案1】:
import pydash 
l = ["af", 2, [4.123, "ic", [-8, ["xdr"], -6]], [], [-2]]
pydash.flatten_depth(l,-1)
# output: ['af', 2, 4.123, 'ic', -8, 'xdr', -6, -2]

【讨论】:

  • 您应该考虑将此添加到其他问题中。如果您想要另一个第三方库替代方案,请在答案中搜索 deep_flatten
猜你喜欢
  • 2015-03-02
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2019-01-19
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
相关资源
最近更新 更多