Python List 切片操作
发布日期:2021-11-15 14:58:06 浏览次数:39 分类:技术文章

本文共 830 字,大约阅读时间需要 2 分钟。

前沿

今天在做LeetCode88题时(题目如下图所示),一开始想用切片操作快速完成,但发现对nums1的操作,只是简单的拷贝,并没有对nums1本身进行改变,输出还是[1,2,3,0,0,0]。所以在这里对python的List切片操作进行详细的总结,以后忘了方便查看。

这里插入图片描述

一.正常切片操作

slice[start_index:end_index:step]

注意:end_index并不包含该下标对应的值

>>>s=[1,2,3,4,5]#切取单个元素>>>s[2]  3#切取下标连续的列表>>>s[0:2][1,2]    #默认step为1>>>s[0:5:2][1,3,5]  #step为2>>>s[3:0:-1][4,3,2]  #step为-1,注意从start_index开始从“右往左”移动#列表类型的元素可以是混合的>>>mix_list=[4.0, [1, 'x'], 'beef', (-1.9+6j)]>>> mix_list[1] [1, 'x']#多层切片 (仍然使用mix_list>>>mix_list[1][1]'x'>>>mix_list[1][1]=99>>>mix_list[4.0, [1, 99], 'beef', (-1.9+6j)]

二. 切片的复制和引用

这部分就是我此题出错原因之一

>>>a=[1,2,3]>>>id(a)4393900104>>>b=a    #直接赋值>>>id(b)4393900104   #b也指向a指向的地址,所以对b的操作会影响到a>>>b[0]=5>>>b[5,2,3]>>>a[5,2,3]>>>c=a[:] #使用切片进行复制操作>>>id(c)4393899912   #此时c和a不一样,对c的操作影响不到a>>>c[0]=9>>>c[9,2,3]>>>a[5,2,3]

参考博客

(https://www.jianshu.com/p/15715d6f4dad)

转载地址:https://blog.csdn.net/qq_39751320/article/details/104255600 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python a=a+b和 a+=b的区别
下一篇:Qt选用vs2008为编译器时编译出现无法打开window.h文件

发表评论

最新留言

很好
[***.229.124.182]2024年04月12日 16时13分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章