鱼C论坛

 找回密码
 立即注册
查看: 2341|回复: 3

[经验总结] 第10,11,12讲:打了激素的数组|

[复制链接]
发表于 2019-8-21 11:05:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 熊宝宝要当红军 于 2019-8-20 10:45 编辑

一些点
0, number = b和 number = b[:] 的区别

话不多说,上例子:
>>> b = list(range(0,10,2))
>>> b
[0, 2, 4, 6, 8]
>>> number = b
>>> number
[0, 2, 4, 6, 8]
>>> number.remove(4)
>>> number
[0, 2, 6, 8]
>>> b
[0, 2, 6, 8]
number = b

可以理解为指针,number和b 都指向同一片内存单元,所以修改number,b的值也会发生变化

>>> b = list(range(0,10,2))
>>> b
[0, 2, 4, 6, 8]
>>> number = b[:]
>>> number
[0, 2, 4, 6, 8]
>>> number.remove(4)
>>> number
[0, 2, 6, 8]
>>> b
[0, 2, 4, 6, 8]
number = b[:]

number是列表b的拷贝,与与原列表对应的内存单元不同,所以修改number的值,b的值不会发生变化
1,在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长

1)步长可以是负数,负数!!!!,这就意味着我们可以改变方向!!!话不多说上例子:
>>> list1 = [2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2]
>>> list1[6:2:-1]
[8, 7, 6, 5]
>>> list1[:2:-1]
[9, 8, 7, 6, 5]
>>> list1[6::-1]
[8, 7, 6, 5, 4, 3, 2]

2)当然步长可以是正数:
>>> list1
[2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::2]
[2, 4, 6, 8]
>>> list1[2:6:2]
[4, 6]
>>> list1[:6:2]
[2, 4, 6]
>>> list1[2::2]
[4, 6, 8]

3)不能数0,不然就走不动了:
>>> list1[::0]
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    list1[::0]
ValueError: slice step cannot be zero

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
zltzlt + 2 + 2 + 2

查看全部评分

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

使用道具 举报

发表于 2019-8-21 11:09:46 | 显示全部楼层
可以可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 19:35:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-1 10:48:58 From FishC Mobile | 显示全部楼层
请问写成list1[2:6-1]会是同样结果吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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