编写一个函数
square_odd_terms
,它接受一个元组作为参数,并返回元组中带有奇数项的元组。即使条款也会保持不变。例如,
square_odd_terms((1, 2, 3, 4, 5))
返回(1, 2, 9, 4, 25)
,square_odd_terms((2, 4, 6, 8, 10))
返回(2, 4, 6, 8, 10)
。答案格式:
def square_odd_terms(tpl): # Fill in your code here
我只能写一个函数来返回奇数之和的值:
def sum_odd_squares(tree):
if tree == ():
return 0
elif is_leaf(tree):
if tree%2 == 0:
return 0
else:
return tree ** 2
else:
return sum_odd_squares(tree[0])+sum_odd_squares(tree[1:])
def is_leaf(item):
return type(item) != tuple
如何解决这个问题?如何修改上面的代码使其满足问题要求?什么是正确的答案?
答案 0 :(得分:0)
在这里发布作业问题,呵呵?
以下是解决问题的一种方法:
快乐的编码!
答案 1 :(得分:0)
您可以使用列表理解:
[ x**2 if x%2==1 else x for x in tpl ]
但是,这会创建一个列表,而不是元组。要创建元组,您可以转换结果:
tuple([ x**2 if x%2==1 else x for x in tpl ])
或者首先只使用生成器表达式:
tuple( x**2 if x%2==1 else x for x in tpl )