python中的递归函数 - 检查列表中的元素是否已存在并生成新元素

时间:2017-11-17 05:08:58

标签: python recursion

我正在尝试用python编写一个递归函数,它检查列表中的名称并给出一个新名称。可以使用传递给函数的参数comm和index来形成要检查的csv的名称。 我编写了下面的函数,并期望输出打印为字符串

csv_full_list=["mycsv_0","mycsv_1"]

def create_csv_name(comm,index):
    if comm+"_"+str(index) in csv_full_list:
        create_csv_name(comm,index+1)
    else:
        return comm+"_"+str(index)
print create_csv_name("mycsv",0)
  

任何人都可以打电话给我这个函数返回的原因   没有类型

代替

  

of string。

1 个答案:

答案 0 :(得分:0)

您必须增加索引以避免无休止的递归。

csv_full_list = ['mycsv_0', 'mycsv_1']


def create_csv_name(comm, index):
    global csv_full_list
    if comm + '_' + str(index) in csv_full_list:
        index += 1 # increment index by 1
        create_csv_name(comm, index=index)
    else:
        return '%s_%i' % (comm, index)


print(create_csv_name('mycsv', 0))