您的位置:首页 > 编程语言 > Python开发

在原数组中删除重复的元素 | Python

2017-06-10 21:17 375 查看
在原数组中删除重复元素:假设 nums = [1,1,1,2,2,3,3,3,3,4]; 经过删除后,得到的结果为:nums=[1, 2, 3, 4]

数组在做增删时,需要借助index,操作起来比较麻烦(相对链表而言更难),个人觉得不适合用for 的方式控制指针运动,而是应当在循环体中控制指针更为容易。

可以先定义一个死循环,然后在循环体内部定义跳出条件。

def dropDuplicate(nums):
dic = {}
ptr = 0
while True:
if ptr>=len(nums):
break
if nums[ptr] in dic:
nums.pop(ptr)
ptr-=1
else:
dic[nums[ptr]]=1
ptr+=1

if __name__ =="__main__":
nums = [1,1,1,2,2,3,3,3,3,4]
dropDuplicate(nums)
print nums上述代码中,ptr表示列表的指针,每轮循环指针前进一步,当删除元素时,指针应当停在原处,以便重新判断删除后该位置上的元素是否符合保留的条件。当指针即将发生越界时,提前跳出循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: