如何取消嵌套混合类型的元组?
How do I unnest a tuple with mixed types?
我正在尝试将具有混合类型的元组展平到列表中。以下函数未产生所需的输出:
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']
def flatten(l):
if isinstance(l, (list,tuple)):
if len(l) > 1:
return [l[0]] + flatten(l[1:])
else:
return l[0]
else:
return [l]
a = (1, 2, 3, ['first', 'second'])
print(flatten(a))
[1, 2, 3, 'first', 'second']
我正在尝试将具有混合类型的元组展平到列表中。以下函数未产生所需的输出:
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']
def flatten(l):
if isinstance(l, (list,tuple)):
if len(l) > 1:
return [l[0]] + flatten(l[1:])
else:
return l[0]
else:
return [l]
a = (1, 2, 3, ['first', 'second'])
print(flatten(a))
[1, 2, 3, 'first', 'second']