Dha*_*mit 0 python recursion list
可能重复:
在Python中展平(不规则)列表
我有一个列表l = [2, 9, [1, 13], 8, 6]
,我需要递归展平才能获得l = [2, 9, 1, 13, 8, 6]
.我找不到办法这样做.
PS - 在撰写本文时,我在相关问题列表中找不到与我的疑问相符的任何问题.所以,如果这是重复的,那么请指出我的问题,而不是燃烧我.:)
如果你想展平任意嵌套的iterables,你可以尝试这个函数:
def flatten(x):
try:
it = iter(x)
except TypeError:
yield x
else:
for i in it:
for j in flatten(i):
yield j
Run Code Online (Sandbox Code Playgroud)
例:
a = [2, 9, [1, 13], 8, 6]
list(flatten(a))
# [2, 9, 1, 13, 8, 6]
Run Code Online (Sandbox Code Playgroud)
请注意,该函数还会将字符串展平为单个字符.