作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!