为了账号安全,请及时绑定邮箱和手机立即绑定

在不删除元组的情况下展平列表

在不删除元组的情况下展平列表

UYOU 2021-11-16 14:26:35
如何在不删除元组的情况下展平包含元组的嵌套列表?例子:flatten([1,2,3,(4,5,6),[7,8,9]]) [1, 2, 3, (4, 5, 6),7,8,9]
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

为什么不是简单的循环:


>>> L = [1,2,3,(4,5,6),[7,8,9]]

>>> L2 = []

>>> for i in L:

    if isinstance(i,list):

        L2.extend(i)

    else:

        L2.append(i)



>>> L2

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

>>> 


查看完整回答
反对 回复 2021-11-16
?
哔哔one

TA贡献1854条经验 获得超8个赞

def flatten(arr):

    if not isinstance(arr, list):

        return arr

    else:

        output = []

        for sy in arr:

            if isinstance(sy, list):

                temp = flatten(sy)

                for py in temp:

                    output.append(py)

            else:

                output.append(sy)

        return output


print (flatten([1,2,3,(4,5,6),[7,8,9]]))

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


查看完整回答
反对 回复 2021-11-16
?
月关宝盒

TA贡献1772条经验 获得超5个赞

试试看:


f = lambda *n: (e for a in n

    for e in (f(*a) if isinstance(a, (list)) else (a,)))


print(list(f([1,2,3,(4,5,6),[7,8,9]])))

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


查看完整回答
反对 回复 2021-11-16
  • 3 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信