python切片操作
来源:互联网 发布:域名注册价格查询 编辑:程序博客网 时间:2024/06/07 07:53
转载自:http://www.pythontab.com/html/2013/pythonjichu_0128/182.html
python的字符串处理功能强大,转载至此。
先从原理上分析切片运算:
list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数。而slice函数又是和range()函数相关的。
给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的属性,例如:
1
2
3
4
a = [
1
,
2
,
3
,
4
,
5
,
6
]
x = a [
1
:
5
] # x = a.__getitem__( slice (
1
,
5
, None ) )
a [
1
:
3
] = [
10
,
11
,
12
]# a.__setitem__( slice (
1
,
3
, None ), [
10
,
11
,
12
] )
del a [
1
:
4
]# a.__delitem__( slice (
1
,
4
, None ) )
Python 的切片功能实际上比很多程序员认为的更强大。
1
a
=
m [
0
:
100
:
10
]
# 带步进的切片(步进值=10)
注意:步进值为step
当step > 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从左往右**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的左边,否则返回值为空
当step < 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从右往左**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的右边,否则返回值为空
有一个经典应用是:翻转字符串
比如:
1
2
>>>
str
=
'pythontab.com'
>>>
str
[::
-
1
]
结果为:
'moc.batnohtyp'
切片边界问题
实例:
1
2
3
4
5
6
s
=
[
1
,
2
,
3
,
4
]
# S 上界为 0 下界为 4
s[
-
100
:
100
]
#返回 [1,2,3,4] -100超出了上界,100超出了下界:等价于 s[0:4]
s[
-
100
:
-
200
]
#返回 [] -100,-200均超出了上界,自动取上界:等价于s[0:0]
s[
100
:
200
]
#返回 [] 100,200均超出了下界,自动取下界值:等价于s[4:4]
s[:
100
]
#返回 [1,2,3,4] 开始值省略表示从第0个开始
s[
0
:]
#返回 [1,2,3,4] 结束值为空表示到最后一个结束
注意:我使用的python版本为python2.7,python的切片存在版本兼容问题。在python3中有更加高级的功能和用法,在使用时一定要注意自己的python版本。
0 0
- Python 切片操作
- python切片操作
- 【Python】切片操作符
- python-切片操作符
- Python切片操作
- python 切片操作
- python切片操作
- python中的切片操作
- python切片操作
- Python的切片操作
- Python切片操作
- Python—切片操作
- Python切片赋值操作
- Python切片操作
- PYTHON之切片操作
- python之切片操作
- python中的切片操作
- python中的切片操作符
- iOS开发中讯飞语言的使用
- fork面试题
- Cordys LDAP 恢复到指定时间
- 微信 WeixinJSBridge 创建卡券
- Leetcode 200 Number of Islands 岛的个数
- python切片操作
- 移动端页面默认样式重置
- iOS开发系列--UITableView全面解析
- J2EE学习篇之--Spring技术详解
- 数据结构-各类排序算法总结[续]
- js的shift()方法
- RAID 5
- Android_Ant多渠道打包
- 动态规划_线性结构例题_Color Length(UVA1625)