我有一个函数:Given a list of Python values xs and a non-negative integer n, construct and return a copy of xs but with each value replicated n times. Do NOT modify the original list 'xs'
我把这个小的,然后把它乘以这个代码。在
def replicate(xs,n):
xscopy = sorted(n * xs)
return xscopy
这段代码将产生一个类似“replicate([1,2,2,3],2)”的函数输入,输出为[1,1,2,2,2,2,3,3],这是正确的。请注意正确的输出如何使数字的位置匹配。在
但是当负数在列表中时,“sort”函数会将负数视为小于正数,并将负数的位置从原来在列表中的位置移动。在
例如:复制([1,-1,2,1],2)输出到[-1,-1,1,1,1,1,2,2]而不是正确的版本[1,1,-1,-1,2,2,1,1]。在
注意到负1是如何变化的吗?在
我被要求在这个任务中使用某种类型的循环(while或for),我不知道如何合并一个循环,既能保留数字的位置,又能将数字正确地附加到一个新列表中(一个新的列表,包含原始的x和重复的,与原始列表的顺序相同)。在
编辑:我应该补充一下,这个任务的列表理解是受限的