Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
递归python函数中的对象求和_Python_Function_Recursion_Sum - Fatal编程技术网

递归python函数中的对象求和

递归python函数中的对象求和,python,function,recursion,sum,Python,Function,Recursion,Sum,我需要在一个函数中求和对象(字符串、整数等)(不创建其他函数,可以在一个函数中完成)。它应该是这样工作的:当给定my_sum([[['s'],'ta'],['c',['k']]])时,它应该返回'stack' 我想到了这个: def my_sum(array): if not array: #empty array return None else: for item in array: if type(item)

我需要在一个函数中求和对象(字符串、整数等)(不创建其他函数,可以在一个函数中完成)。它应该是这样工作的:当给定
my_sum([[['s'],'ta'],['c',['k']]])
时,它应该返回
'stack'

我想到了这个:

def my_sum(array):

    if not array: #empty array
        return None

    else:

        for item in array:

            if type(item) == list:
                my_sum(item)

            else:
                print(item)
它当然不是在做它应该做的,我只是在玩弄它,试图想出一些东西。上面的代码返回以下内容:

s
ta
c
k
我想我离结果不远,因为我有我需要的,但问题是我如何总结这些项目?我不能在函数的任何地方写入
result='
,然后返回它,因为每次有递归调用时它都会被删除。另外,我不想要
全局
变量(如果有人想到的话)。也许我只是愚蠢,看不出这是一件简单的事情,如果是这样的话,请原谅我


谢谢你的回答

常见的累积模式是:

result = <init value>
for item in argument:
     result = result <operator> item
return result
请注意,
type(x)==y
在Python中是不受欢迎的,被认为是更好的样式

家庭作业:扩展函数,使其也适用于以下参数:

print my_sum([[['s'],'ta'],('c',('k')), {('over'), ('flow')}])

常见的累积模式是:

result = <init value>
for item in argument:
     result = result <operator> item
return result
请注意,
type(x)==y
在Python中是不受欢迎的,被认为是更好的样式

家庭作业:扩展函数,使其也适用于以下参数:

print my_sum([[['s'],'ta'],('c',('k')), {('over'), ('flow')}])

我这里有一种似曾相识的感觉。可能的重复您需要另一个参数到您的
my_sum
函数中,尝试一个累加器值,这样您就可以返回该值,而不是返回
None
def my_sum(array,acc=None):…
我在这里有一种似曾相识的感觉。如果您的
my_sum
函数需要另一个参数,请尝试使用累加器值,这样您就可以返回该值,而不是返回
None
def my_sum(array,acc=None):…
即使这样,
isinstance
也应该少用,例如,如果输入是一个
tuple
,它也会失败,即使它是完全有效的(我想你接下来的问题就是为了指出这一点),即使这样,
isinstance
也应该少用,例如,如果输入是一个
元组
,即使它完全有效,它也会失败(我假设您的后续问题就是为了指出这一点)