python 列表排序不改变,在Python中,如何保持列表中已排序数字的顺序不变

我有一个函数: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和重复的,与原始列表的顺序相同)。在

编辑:我应该补充一下,这个任务的列表理解是受限的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值