【发布时间】:2023-08-28 05:48:01
【问题描述】:
我正在尝试将具有混合类型的元组扁平化为列表。以下函数不会产生所需的输出:
a = (1, 2, 3, ['first', 'second'])
def flatten(l):
return flatten(l[0]) + (flatten(l[1:]) if len(l) > 1 else []) if type(l) is list else [l]
>>> flatten(a)
[(1, 2, 3, ['first', 'second'])]
>>> flatten(flatten(a))
[(1, 2, 3, ['first', 'second'])]
>>> [flatten(item) for item in a]
[[1], [2], [3], ['first', 'second']]
输出应该是:
>>> [1, 2, 3, 'first', 'second']
【问题讨论】:
-
关于扁平化嵌套序列的现有问题没有一个对您有帮助吗?有不少……
-
如果输入是元组,
if type(l) is list显然无法正常工作,您可能需要检查isinstance(l, (list,tuple))。
标签: python list tuples flatten