如何消除生成的斐波那契序列字符串末尾的多余逗号?
解决斐波那契序列末尾多余逗号的问题
方法一:用列表收集元素后再拼接(推荐)
这是Python处理分隔符拼接最简洁高效的方式,先把所有斐波那契数的字符串形式存入列表,再用','.join()方法拼接——该方法只会在元素之间插入逗号,完全避免末尾多余逗号的问题。
修改后的函数代码:
def get_fibonacci_sequence(num: int) -> str: ''' Function to return string with fibonacci sequence >>> get_fibonacci_sequence(0) '' >>> get_fibonacci_sequence(1) '0' >>> get_fibonacci_sequence(9) '0,1,1,2,3,5,8,13,21' ''' first_term = 0 second_term = 1 fib_list = [] for _ in range(num): fib_list.append(str(first_term)) first_term, second_term = second_term, first_term + second_term return ','.join(fib_list)
方法二:循环内判断是否为最后一个元素
如果不想用列表,可以在循环中判断当前是否是最后一个迭代项,仅当不是最后一项时才添加逗号:
修改后的函数代码:
def get_fibonacci_sequence(num: int) -> str: ''' Function to return string with fibonacci sequence >>> get_fibonacci_sequence(0) '' >>> get_fibonacci_sequence(1) '0' >>> get_fibonacci_sequence(9) '0,1,1,2,3,5,8,13,21' ''' first_term = 0 second_term = 1 result = '' for sequence in range(num): result += str(first_term) # 仅当不是最后一个元素时添加逗号 if sequence != num - 1: result += ',' first_term, second_term = second_term, first_term + second_term return result
两种方法都能完美匹配测试用例的输出,其中方法一的代码更简洁、易维护,是优先推荐的方案。
内容的提问来源于stack exchange,提问作者Charlie Cailleaux
相关产品推荐
相关产品推荐

