鱼C论坛

 找回密码
 立即注册
查看: 1928|回复: 4

[已解决]关于列表切片的问题

[复制链接]
发表于 2023-6-24 11:08:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想问一下有鱼油知道利用切片对列表进行元素的插入时,切片的索引指代的具体位置么?
具体的:不知道为什么程序会出现下面的结果
>>>s=[1, 2, 3, 4, 5, '小白最可爱']
>>>s[4:4]=[6]
>>>s
[1, 2, 3, 4, 6, 5, '小白最可爱']
>>>s[4:5]=[7]
>>>s
[1, 2, 3, 4, 7, 5, '小白最可爱']
最佳答案
2023-6-24 11:27:09
cindyber 发表于 2023-6-24 11:24
不知道下面这个例子有没有更清晰一点:
>>>a=[0,1,2,3,4]
>>>a

在这个例子中,我们可以看到以下操作:

1. a[2:3]=['小白']:这个操作将列表a的索引2到索引3之间的位置替换为['小白']。切片的起始索引是2,结束索引是3,所以替换的位置是索引2到索引3之间的位置。在这种情况下,元素2被替换为['小白']。

2. a[2:2]=['小黑']:这个操作将列表a的索引2到索引2之间的位置插入['小黑']。切片的起始索引和结束索引都是2,所以插入的位置是索引2之前的位置。在这种情况下,['小黑']被插入到索引2之前的位置,也就是在元素1和元素2之间插入了['小黑']。

总结:切片操作中的起始索引和结束索引决定了替换或插入的位置。起始索引和结束索引相同,表示插入到起始索引之前的位置,起始索引到结束索引之间的位置会被替换为新的元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-24 11:08:41 | 显示全部楼层
切片的索引指代的是插入元素的位置。在给定的例子中,我们可以看到以下操作:

1.  s[4:4]=[6] :这个操作将列表s的索引4之前的位置插入元素6。由于切片的起始索引和结束索引都是4,所以插入的位置就是索引4之前的位置。在这种情况下,元素6被插入到了索引4的位置。

2.  s[4:5]=[7] :这个操作将列表s的索引4之前的位置插入元素7。切片的起始索引是4,结束索引是5,所以插入的位置是索引4之前的位置。在这种情况下,元素7被插入到了索引4的位置。

总结:切片操作中的起始索引和结束索引指代的是插入元素的位置。起始索引之前的位置是插入的位置。

点评

…  发表于 2023-6-24 11:16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2023-6-24 11:24:43 | 显示全部楼层
isdkz 发表于 2023-6-24 11:08
切片的索引指代的是插入元素的位置。在给定的例子中,我们可以看到以下操作:

1.  s[4:4]=[6] :这个操作 ...


不知道下面这个例子有没有更清晰一点:
>>>a=[0,1,2,3,4]
>>>a
[0, 1, 2, 3, 4]
>>>a[2:3]=['小白']
>>>a
[0, 1, '小白', 3, 4]
>>>a=[0,1,2,3,4]
>>>a
[0, 1, 2, 3, 4]
>>>a[2:2]=['小黑']
>>>a
[0, 1, '小黑', 2, 3, 4]

在这里‘小白’替换了’这个元素,但是‘小黑’插在了1和2之间,为什么结束索引的不同为引起这个差异呢?什么时候会把原有的元素替换呢?替换的又是哪个位置的元素?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-24 11:27:09 | 显示全部楼层    本楼为最佳答案   
cindyber 发表于 2023-6-24 11:24
不知道下面这个例子有没有更清晰一点:
>>>a=[0,1,2,3,4]
>>>a

在这个例子中,我们可以看到以下操作:

1. a[2:3]=['小白']:这个操作将列表a的索引2到索引3之间的位置替换为['小白']。切片的起始索引是2,结束索引是3,所以替换的位置是索引2到索引3之间的位置。在这种情况下,元素2被替换为['小白']。

2. a[2:2]=['小黑']:这个操作将列表a的索引2到索引2之间的位置插入['小黑']。切片的起始索引和结束索引都是2,所以插入的位置是索引2之前的位置。在这种情况下,['小黑']被插入到索引2之前的位置,也就是在元素1和元素2之间插入了['小黑']。

总结:切片操作中的起始索引和结束索引决定了替换或插入的位置。起始索引和结束索引相同,表示插入到起始索引之前的位置,起始索引到结束索引之间的位置会被替换为新的元素。

评分

参与人数 1鱼币 +1 收起 理由
陶远航 + 1 秒男

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 20:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表