python指针操作

每日一练针对于想要丰富自己相关知识和语法的小伙伴们
可以选择性观看,小博主尽力做到每个知识点详细讲解和拓展
文章尽可能声形并茂,还要靠各位小伙伴们三连改善
小博主在这里感谢各位大佬啦!!!


文章目录

    • 前言
    • 初始问题及解答
        • ✨问题
        • ✨列表删除操作
    • 解题
        • ✨遍历删除操作
        • ✨快慢指针操作

前言

我们之前总结了双指针解决问题的相关内容,今天我们继续做一下回顾指针问题,同时也带大家回顾一下python中相关与列表删除的基本内容。闲话少叙,我们直接进入正题。
在这里插入图片描述
我们还是通过题目来引出具体知识。

初始问题及解答

✨问题

在这里插入图片描述
我们想要做一个删除数组重复内容的这样一个工作。
那么我们首先先要了解如何进行列表删除,相关的操作都有哪些。

✨列表删除操作

1.remove()
通过元素内容来删除。且满足以下情况

一次删除一个元素;
如果列表内有重复元素则删除第一个;
元素不存在时抛出异常ValueError

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
lst.remove(5)
print("删除后的列表为:", lst)

2.pop()
通过索引来进行删除:

删除一个指定的索引位置上的元素;指定索引不存在则抛出异常IndexError
注意:如果不指定参数,则默认删除最后一个元素
且删除后返回

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原列表为:", lst)
lst.pop(6)
print("删除后的列表为:", lst)

这里就把索引为6的元素删除了
3.切片
令索引为【n,m】的内容为【】,就把n-m的内容替换成了空。
4. clear与del
clear为清空列表中的元素,列表对象还存在
del直接删除了列表对象

解题

✨遍历删除操作

首先我们令count为0,让其和循环一起动。然后我们循环从1开始,跳过0然后如果这个元素和上一个相同则我们进行删除。

nums = [0,0,1,1,1,2,2,3,3,4]
count=0
for i in range(1len(nums)):
    if nums[i-count]==nums[i-count-1]:
        del nums[i-count]
        count+=1
     
return nums

这样我们就完成了相关操作。

✨快慢指针操作

在这里插入图片描述

nums = [0,0,1,1,1,2,2,3,3,4]
if not nums:
    return 0
n=len(nums)
fast=slow=1
while fast<n:
    if nums[fast]!=nums[fast-1]:
        nums[slow]=nums[fast]
        slow+=1
    fast+=1
ruturn slow,nums[0,slow]

这就是快慢指针的全部思想了,感谢各位小伙伴们的观看,谢谢大家!祝愿大家521快乐!!!
在这里插入图片描述

每日一练针对于想要丰富自己相关知识和语法的小伙伴们
可以选择性观看,小博主尽力做到每个知识点详细讲解和拓展
文章尽可能声形并茂,还要靠各位小伙伴们三连改善
小博主在这里感谢各位大佬啦!!!

你可能感兴趣的:(python)