从字符串中删除最后一个逗号

时间:2019-12-07 08:47:42

标签: python-3.x recursion

如何从输出12,7,2,-3,2,7,12,中删除最后一个逗号?

这是我当前的代码:

n = 15, k = 5
def pattern(n):
    # Write your recursive function here
    if n < 0:
        print(n, end=',')
    else:
        print(n, end=',')
        pattern(n-k)
        print(n, end=',')
pattern(n)

2 个答案:

答案 0 :(得分:0)

请注意,无论如何:ifelse,首先打印n。因此,您始终可以从打印开始。现在我们可以将逗号切换到打印开始:

n = 15
k = 5
def pattern(n):
    # Write your recursive function here
    print(n, end='')
    if n > 0:
        print(', ', end='') 
        pattern(n-k)
        print(', ' + str(n), end='')
pattern(n)

礼物:

15, 10, 5, 0, 5, 10, 15

答案 1 :(得分:0)

当然,Tomerikoos的回答完全符合要求。这是一个具有其他优点的解决方案:

n = 15; k = 5
def pattern(n):
    if n < 0:
        return [n]
    else:
        return [n] + pattern(n-k) + [n]

print(', '.join(map(str,pattern(n))))

说明:

  • 您计算序列中的项目,并将其存储在列表中
  • 之后进行打印:
    • 首先,将函数str映射到序列上,生成一个字符串序列。
    • 然后,在逗号上使用str.join将续集连接在一起。

好处:

  • 分离打印和计算代码,一旦计算就可让您完全使用序列进行其他操作
  • 使用str.join,这是显示内容的最方便的功能之一
  • 仅使用一个打印语句。

边注;您可以在以下情况下内联使用pythons:

def pattern(n):
    return [n] if n<0 else [n] + pattern(n-k) + [n]