本篇内容介绍了“Python中的切片是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
什么是切片,其实就是列表的一部分。比如下面这个列表:
players = ['james','anthony','wade','rose','curry']
你只想取中间这3个名字,可以这么做:
print(players[1:4]) ['anthony', 'wade', 'rose']
players[1:4]就是一个切片,前面是列表对应的变量,后面用中括号括起来,里面就是起始索引和终止索引,中间用冒号连接起来。这个索引也是含左不含右的,对于这个例子,就是从1开始,到4为止,但是不包括4这个位置上的元素。
如果省略起始索引,那么意味着索引从0开始:
print(players[:4]) ['james', 'anthony', 'wade', 'rose']
如果省略终止索引,那么意味着切片会取到列表的最后一个元素:
print(players[1:]) ['anthony', 'wade', 'rose', 'curry']
索引中也可以使用负数,意味着从列表的末端截取元素:
print(players[-2:]) ['rose', 'curry']
切片中也可以使用for循环:
for player in players[:3]: print(player.title())
结果如下:
James Anthony Wade
想要复制整个列表,其实就是把切片从头取到尾,那么可以同时省略起始索引和终止索引,只留下冒号:
new_players = players[:]
为了验证确实复制了整个列表,我们给原列表players和新复制的列表new_players各添加一个不同的元素,然后将其分别打印:
players.append('thompson') new_players.append('durant') print(players) print(new_players)
我们来看下结果,确实列表被完整复制了:
['james', 'anthony', 'wade', 'rose', 'curry', 'thompson'] ['james', 'anthony', 'wade', 'rose', 'curry', 'durant']
注意,复制列表时的冒号一定不要忘记。我们来看看如果忘记冒号,会发生什么后果:
players = ['james','anthony','wade','rose','curry'] new_players = players players.append('thompson') new_players.append('durant') print(players) print(new_players)
重点关注第2行代码,我们并没有使用切片,而是直接将新列表new_players关联到了旧列表players,接下来仍然给两个列表添加不同的元素,我们来看看打印的结果吧:
['james', 'anthony', 'wade', 'rose', 'curry', 'thompson', 'durant'] ['james', 'anthony', 'wade', 'rose', 'curry', 'thompson', 'durant']
我们发现,两个列表完全一致,而且新添加的两个元素都被加到了其中,这是为什么呢?
其实,就是我们之前说过的,变量可以看做是一个标签,它指向了某个内容。
这个例子中,变量players指向了列表['james','anthony','wade','rose','curry']。在第2行代码中,新变量new_players又和变量players关联到了一起,因此新变量new_players也指向了这个列表['james','anthony','wade','rose','curry']。
因此,无论之后给哪个变量添加新的元素,它们指向的都是同一个列表,所以最终输出的两个列表就会完全一样了。
“Python中的切片是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。