You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请解释代码行nums[:] = unique的含义及对应Python去重函数实现

解释代码行nums[:] = unique的含义

先结合你给出的完整去重函数来看:

class Solution(object):
    def removeDuplicates(self, nums):
        unique = []
        for num in nums:
            if num not in unique:
                unique.append(num)
        
        nums[:] = unique
        return len(nums)

核心含义

nums[:] = unique是Python里的原地修改列表操作,作用是把原列表nums的所有元素替换成unique列表里的元素,而非创建一个新的列表对象。

为什么不直接用nums = unique?

如果写nums = unique,只是把函数内部的局部变量nums指向了新的unique列表,但外部调用该函数时传入的原列表对象不会有任何变化——相当于你在函数里换了个变量指向的目标,原列表本身还是原样。

而nums[:]是对原列表做全切片赋值,它会直接修改原列表的内容:清空原列表里的所有元素,再把unique的元素依次填充进去。这样外部的原列表会被直接更新,完全符合这类去重题(比如LeetCode移除重复元素题型)要求的「原地修改输入数组」规则。

配合整个函数的逻辑

函数先遍历原nums,把不重复的元素收集到unique里,再通过nums[:] = unique把原数组改成去重后的版本,最后返回新的长度——既完成了去重,又保证了原数组被修改,同时返回正确的长度。

内容的提问来源于stack exchange,提问作者Siva Anchuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:45:56