我想要的是用未知的初始形状更改列表中的所有元素,所以我创建了这个辅助函数,但是有没有更好(更短)的方法,或者一个内置的方法来做到这一点?
还有另一个问题,哪里是存储这样一个函数的最佳位置 >if< 没有内置函数,而不是将它复制粘贴到每个文件或项目中
def getNextList():
yield [1]
yield [[1,2],3]
yield [[1,2,[3]], [4,5],6]
def change(next_list, function):
for i, e in enumerate(next_list):
if(isinstance(e, int)):
next_list[i] = function(next_list[i])
else: change(e, function)
for next_list in getNextList():
change(next_list, lambda x: x+1)
print(next_list)
所需的输出:
[2]
[[2, 3], 4]
[[2, 3, [4]], [5, 6], 7]
编辑:@Colin Schoen 不是你标记问题的重复,因为迭代两次只会给我一个错误
我想我发布的解决方案或@blhsing 的版本确实更短,是该特定问题的唯一解决方案,但如果我坚持下去,有什么方法可以在不同项目中使用该功能而不复制它?
慕少森
相关分类