我想在一个包含多个列表的巨大列表中执行一些操作,在这些多个列表中,它们也有一些列表,例如:
arr = [[[1, 2], 3], [2, 3, 4]]
如何对这些列表中的所有元素执行某些操作,例如+1?结果将是:
[[[2, 3], 4], [3, 4, 5]]
我知道我可以使用for
遍历每个列表,但有时这些元素可能是string
或其他类型?
我知道我可以检查type()
列表中的每个元素是否递归并执行某些操作,但有没有简单方法来解决此问题?
我的屁股太宽了
答案 0 :(得分:2)
一个简单的递归例程可以这样做:
def operate_on(data, operation):
if isinstance(data, list):
return [operate_on(x, operation) for x in data]
else:
return operation(data)
arr = [[[1, 2], 3], [2, 3, 4]]
print(operate_on(arr, lambda x: x + 1))
[[[2, 3], 4], [3, 4, 5]]