我正在构建一个接受四个参数的函数:xs(original list)
,old
,new
,和{old
),如果旧数字在列表中,则用新值替换它并返回一个名为new_xs
的新列表。在
第四个参数限制是一个整数,表示允许的最大替换数。我只需要替换old
的第一个限制,其余的保持不变。当limit==None
时,确实没有限制(并且我替换所有出现的old
)。
负限或零限:不更换
输入/输出示例:
xs=[1,2,3,4,5]
old= 2
new=100
new_xs=[1,100,3,4,5]
def replace(xs, old, new, limit=None):
new_xs=[]
for num in range(len(xs)):
if num==old:
new_xs.append(new)
return new_xs
我不知道如何让它停在极限,如果有极限的话。在
我冒昧地更改了您的代码,只替换了列表中的值,并返回了该值。请注意,这不会更改原始列表。在
基本上,它检查你给它的列表中的值,如果它与旧值匹配,它会将其更改为新值。enumerate()只计算您所做的每一次迭代,并在列表中提供值,因此我可以使用该值查找旧值在列表中的位置,然后将其交换出去。在
所以,使用你的xs值,新值,旧值:
^{pr2}$然后
print(new_xs)
给出: [1100,3,4,5]注意,我没有为你实现一个限制,所以现在什么也不做。在
几个问题:
您正在循环}的内容。我们可以直接循环
range()
的输出,这是一个新的整数序列,而不是{xs
来获得我们想要的值。当条件匹配时,您当前只将值附加到新的
xs_new
列表中,并且我们希望每次都附加一个值。指定的限制功能未实现。
规范注释中的说明:
输入/输出示例:
^{pr2}$相关问题 更多 >
编程相关推荐