菜单

Python高端性格——切成丝(Slice)

2019年5月2日 - Php

概念三个list:

Python高端天性——切丝(Slice),

概念五个list:

1 = ['haha','xixi','hehe','heihei','gaga']

 取其前多个要素:

>>> L[0],L[1],L[2]
('haha', 'xixi', 'hehe')

其一措施有些蠢,因为壹旦成分万分多,大家需求取其前N个成分,如何是好?

想必会想到用循环:

图片 1

>>> r=[]
>>> n = 3
>>> for i in range(n):
...     r.append(L[i])
...
>>> r
['haha', 'xixi', 'hehe']

图片 2

不过像那种很频仍很常用的操作花招,基本上全部的言语都提供了大致的操作方法,类似Substring方法(俗称取子串),python也提供了接近的措施,那正是切成片(Slice).

 例如:

>>> L[0:3]
['haha', 'xixi', 'hehe']

 其中,L[0:3]表示从索引0最先,知道索引3截至,不过不包蕴索引三,即索引0,一,二.

假若第叁个索引为0,还足以省略:

>>> L[:3]
['haha', 'xixi', 'hehe']

 也得以从任性索引起初:

>>> L[1:2]
['xixi']

也能够尝试:

>>> L[1:1]
[]

因为,Python也支撑尾数取数L[-1],大家来探视是还是不是协助尾数切条:(记住,尾数第壹个目录是-一)

>>> L[-2:]
['heihei', 'gaga']

>>> L[-3:-2]
['hehe']

假若以为还可是瘾,再持续看看:

>>> m = list(range(100))#通过range函数创建一个0-99的数列,组成一个list赋值给m
>>> m
[0, 1, 2, 3, 4, 5, 6, ……,99]

图片 3

>>> m[:10]#取前十个数
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> m[-10:]#取后十个数
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> m[10:20]#取前11-20个数
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> m[:10:2]#前十个数中,每2个数取一个
[0, 2, 4, 6, 8]
>>> m[5:15:3]#第6-15个数中,每3个数取一个
[5, 8, 11, 14]
>>> m[::10]#所有的数中,每10个数取一个
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> m[:]#什么都不写,可以原样复制一个list
[0, 1, 2, 3, 4, 5, 6, 7,……,99]

图片 4

tuple也支撑切块天性,只是结果也是一个tuple:

>>> n = (1,3,5,7)
>>> n[:3]
(1, 3, 5)

再来看看字符串:

>>> 'abcdefghjklmn'[::2]
'acegjln'

字符串也支撑切条,只是结果也是贰个字符串。

再看1个例子:

利用切成丝功用,编写二个函数trim(str),类似Python中的strip()作用——去除字符串首尾的空格:

图片 5

>>> def trim(str):
...     while str[:1]==' ':
...             str = str[1:]
...     while str[-1:] == ' ':
...             str = str[:-2]
...     return str
...
>>> trim('  abc  hh  welcome!      ')
'abc  hh  welcome!'

图片 6

http://www.bkjia.com/Pythonjc/1306681.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1306681.htmlTechArticlePython高级特性——切片(Slice), 定义2个list: 1L = [ ‘haha’ , ‘xixi’ , ‘hehe’ , ‘heihei’ , ‘gaga’ ] 取其前八个要素:
L[0],L[1],L[2](‘haha’, ‘xixi’, ‘heh…

1
= ['haha','xixi','hehe','heihei','gaga']

 取其前四个因素:

>>> L[0],L[1],L[2]
('haha', 'xixi', 'hehe')

以此艺术有个别蠢,因为一旦成分异常多,大家要求取其前N个要素,如何做?

恐怕会想到用循环:

图片 7

>>> r=[]
>>> n = 3
>>> for i in range(n):
...     r.append(L[i])
...
>>> r
['haha', 'xixi', 'hehe']

图片 8

不过像那种很频繁很常用的操作手法,基本上全部的言语都提供了简约的操作方法,类似Substring方法(俗称取子串),python也提供了看似的不二诀要,那就是切块(Slice).

 例如:

>>> L[0:3]
['haha', 'xixi', 'hehe']

 其中,L[0:3]表示从索引0开头,知道索引三截止,可是不包涵索引3,即索引0,一,二.

如若第二个索引为0,还足以总结:

>>> L[:3]
['haha', 'xixi', 'hehe']

 也能够从任意索引起初:

>>> L[1:2]
['xixi']

也足以试试:

>>> L[1:1]
[]

因为,Python也支撑尾数取数L[-1],大家来看望是还是不是协理尾数切块:(记住,倒数第三个目录是-一)

>>> L[-2:]
['heihei', 'gaga']

>>> L[-3:-2]
['hehe']

即使认为还不舒服,再持续看看:

>>> m = list(range(100))#通过range函数创建一个0-99的数列,组成一个list赋值给m
>>> m
[0, 1, 2, 3, 4, 5, 6, ……,99]

图片 9

>>> m[:10]#取前十个数
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> m[-10:]#取后十个数
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> m[10:20]#取前11-20个数
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> m[:10:2]#前十个数中,每2个数取一个
[0, 2, 4, 6, 8]
>>> m[5:15:3]#第6-15个数中,每3个数取一个
[5, 8, 11, 14]
>>> m[::10]#所有的数中,每10个数取一个
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> m[:]#什么都不写,可以原样复制一个list
[0, 1, 2, 3, 4, 5, 6, 7,……,99]

图片 10

tuple也扶助切块脾气,只是结果也是三个tuple:

>>> n = (1,3,5,7)
>>> n[:3]
(1, 3, 5)

再来看看字符串:

>>> 'abcdefghjklmn'[::2]
'acegjln'

字符串也支撑切成丝,只是结果也是3个字符串。

再看3个例证:

利用切丝作用,编写三个函数trim(str),类似Python中的strip()功效——去除字符串首尾的空格:

图片 11

>>> def trim(str):
...     while str[:1]==' ':
...             str = str[1:]
...     while str[-1:] == ' ':
...             str = str[:-2]
...     return str
...
>>> trim('  abc  hh  welcome!      ')
'abc  hh  welcome!'

图片 12

相关文章

发表评论

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

网站地图xml地图