【python学习笔记】切片方法

1、切片说明和简单用法

python提供了一个切片功能,用这种方法可以很简单的获取列表或者元组等的某几个元素,切片返回的结果的类型和被切片的是保持一致的;基本用法如下:

>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
>>> L[0:3]
['Michael', 'Sarah', 'Tracy']
>>> t=('a','b','c','d','e','f')
>>> t[0:3]
('a', 'b', 'c')

如上范例中0:3即表示编号从0开始到3结束的元素;
更简单写法可以把0省掉:

>>> L[:3]
['Michael', 'Sarah', 'Tracy']

也可以不从0开始:

>>> L[1:3]
['Sarah', 'Tracy']

由于编号除了可以从0开始外,也可以从-1开始,即从最后一个元素开始,所以切片也可以这样写:

>>> L[-3:-1]
['Tracy', 'Bob']
>>> L[-3:]
['Tracy', 'Bob', 'Jack']

2、切片高级用法

切片也是可以设置步进的,基本语法为[start:stop:step]

>>> t[0:5:2]
('a', 'c', 'e')

如果start0,则可以不写:

>>> t[:5:2]
('a', 'c', 'e')

如果stop为最后一个元素的索引,则可以不写:

>>> t[::2]
('a', 'c', 'e')

如果step也不写,那么就是原样复制:

>>> t[::]
('a', 'b', 'c', 'd', 'e', 'f')

字符串也是可以切片的,譬如:

>>> 'aabbccddeeff'[2:8:3]
'bc'

stop写了超出列表长度的索引也不会报错,如下:


>>> t[:20:3]
('a', 'd')

注意setdict这两种是不支持切片的;

del语句可以直接使用切片,这样可以删掉列表中的一部分,例如:

>>> del L[0:2]
>>> L
['Tracy', 'Bob', 'Jack']
>>> del L
>>> L
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'L' is not defined

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431756919644a792ee4ead724ef7afab3f7f771b04f5000

猜你喜欢

转载自blog.csdn.net/df0128/article/details/83958392