我正在构建一个函数,用列表中的新值替换有限数量的旧值(xs),并将替换的数字作为新列表返回(new_xs)。我在大多数测试用例中失败了。我提供了两个预期输出示例和两个失败测试用例示例。
示例:
Limit = None(表示替换所有旧值)xs = [1,2,1,3,1,4,1,5,1] old = 1 new = 2 - > new_xs [2,2,2,3,2,4,2,5,2]
限制= 0或否定意味着不改变列表中的任何内容
Limit = 2表示只替换两个旧值并保持不变。
这是我的非工作代码:
def replace(xs, old, new, limit=None):
new_xs=[]
replacements=0
for num in xs:
if num == old and (limit is None or replacements<limit):
new_xs.append(new)
replacements+=1
else:
new_xs.append(num)
return new_xs
仍未通过6次测试:
AssertionError:[]!=无
AssertionError:列表不同:[9,2,9,3,9,4,9,5,9]!= [ - 10,2,-10,3,-10,4,-10,5, -10]