gpt4 book ai didi

python - 使用(尝试)递归来反转列表中的列表

转载 作者:行者123 更新时间:2023-11-28 19:40:05 29 4
gpt4 key购买 nike

def is_list(p):
return isinstance(p, list)

def deep_reverse(p):
initial = []
for v, e in enumerate(p):
if is_list(e):
#print p[v][::-1]
initial.append(p[v][::-1])
deep_reverse(e)
return initial

p = [1, [2, 3, [4, [5, 6, [7, 8]]]]]
print deep_reverse(p)

我得到了 [[[4, [5, 6, [7, 8]]], 3, 2]],至少符合预期(我还没有费心弄清楚如何还没有丢失第一个列表 [1[...]]) [[[[6, 5, [8, 7]], 4], 3, 2]].

如您所见,代码仅反转 [ [2, 3]] --> [[3, 2]]。我做错了什么?我没有想过吗?

最佳答案

我会这样做:

def deep_reverse(p):
return [deep_reverse(x) if isinstance(x, list) else x for x in p[::-1]]

p = [1, [2, 3, [4, [5, 6, [7, 8]]]]]
print deep_reverse(p) # [[[[[8, 7], 6, 5], 4], 3, 2], 1]

关于python - 使用(尝试)递归来反转列表中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449563/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com