复习一下Python的字符串切片(截取)操作 AND Python的深浅拷贝(传值/传址)


前面有篇文章提过一次 http://ihipop.info/2010/10/1677.html 拿出来再复习一下

seq[start:stop:step]
start:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
stop:切片操作符将取到该索引为止,注意:不包含该索引的值。
step:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0

In [1]: data="123456789"

In [2]: data[:]
Out[2]: '123456789'
#截取全部,实际上属于python 的深拷贝(传值引用),见此
In [3]: data[4:]
Out[3]: '56789'
#从第5个字符截取到末尾
In [4]: data[-4:]
Out[4]: '6789'
#截取倒数4个字符
In [5]: data[:-4]
Out[5]: '12345'
#从开始截取到倒数第4个止
In [6]: data[4]
Out[6]: '5'
#截取第5个字符
In [7]: data[::-1]
Out[7]: '987654321'
#反转字符串序列
In [8]: data[0:5]
Out[8]: '12345'
# 截取前5


Tips:关于Python的引用和拷贝(浅拷贝与深拷贝 )

首先看看字符串的情况

再看看列表的情况

之所以会有这样的差别是因为a对象是不可变的(是个字符串类型)而c对象是可变的(一个列表)
再来换一种玩法

难道遍历可以使得原本的浅拷贝(传址引用)变成深拷贝(传值引用)吗?

再换一种玩法

晕了没.哈哈~

使用深拷贝的方法

确信都明白了吗?

希望你没有晕!
:-x

Author Info :
  • From:复习一下Python的字符串切片(截取)操作 AND Python的深浅拷贝(传值/传址)
  • URL:http://blog.ihipop.info/2011/02/2106.html
  • Please Reserve This Link,Thanks!
  • 《复习一下Python的字符串切片(截取)操作 AND Python的深浅拷贝(传值/传址)》上有2条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注