我必须解决的问题是将嵌套列表作为输入,并返回相同的嵌套列表,除了每个元素是以前存在于该点中的元素的平方.这是我的代码
>>> def treemap(lst):
... for element in lst:
... if element == type(list):
... return treemap(element)
... else:
... element=element**2
... return lst
>>> lst = [1, 2, 3, [4, [5, 6], 7]]
>>> print(treemap(lst))
Run Code Online (Sandbox Code Playgroud)
现在我收到一个错误,说'int'对象不可迭代.我假设这意味着它正在尝试为整数类型运行循环,这对我来说没有意义,因为我只重新运行列表类型的函数.
我需要编写一个函数,给定一个输入列表,列表中的所有相邻元素都相互交换。如果列表的长度是奇数,则最后一个元素保持不变。我迭代地编写函数,如下所示:
>>>def swap(nums):
for i in range(0,len(nums),2):
try:
nums[i],nums[i+1] = nums[i+1], nums[i]
except:
pass
return nums
>>>swap([1,2,3,4,5])
[2, 1, 4, 3, 5]
Run Code Online (Sandbox Code Playgroud)
我对递归版本使用了与以前完全相同的逻辑:
def swap(nums, c=0):
try:
nums[c], nums[c+1] = nums[c+1], nums[c]
return swap(nums, c+2)
except:
return nums
Run Code Online (Sandbox Code Playgroud)
虽然两者都有效,但我觉得我在使用这些try/except块时有点作弊,而且我不会一直使用它们而成为一个更好的程序员。有人可以就如何在不依赖try/except块的情况下解决这些问题给我建议吗?
我有一个 32x32x3(高、宽、深)图像,我试图在 sitk 中围绕 z 轴旋转 45 度。然而,看起来我要旋转的 z/深度轴是一个角度。我如何才能旋转图像,以便如果我查看图像的一个切片,我会看到该切片从中心旋转了 45 度?
下面是我的代码,代码下面是图像(第一个是原始图像,第二个是尝试旋转失败)。此外,这些是公共图像,而不是机密数据。
def resample(image, transform):
"""
This function resamples (updates) an image using a specified transform
:param image: The sitk image we are trying to transform
:param transform: An sitk transform (ex. resizing, rotation, etc.
:return: The transformed sitk image
"""
reference_image = image
interpolator = sitk.sitkBSpline
default_value = 0
return sitk.Resample(image, reference_image, transform,
interpolator, default_value)
def get_center(img):
"""
This function returns the physical center point of a 3d sitk …Run Code Online (Sandbox Code Playgroud)