Python中的切片是什么

发布时间:2021-07-15 09:54:35 作者:chen
来源:亿速云 阅读:207

本篇内容介绍了“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中的切片是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. python切片是什么意思
  2. Python中怎么实现列表的切片

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何解决SPF PermError: too many DNS lookups问题

下一篇:linux下如何开启php的sockets扩展支持

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》