博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有趣的字符串操作
阅读量:5297 次
发布时间:2019-06-14

本文共 2015 字,大约阅读时间需要 6 分钟。

字符串的读取采用下标参数,定义如下:

str【start:end:step】

注意:字符串下标采用左开右闭的原则,也就是说取的字符串是start~(end-1)

1、正常参数的例子

1 >>> str="Hello World"2 >>> str[0:]3 'Hello World'4 >>> str[6:10]5 'Worl'6 >>> str[:5]7 'Hello'8 >>> str[0:10:2]9 'HloWr'

2、如果序列的机尾处超过了原字符串的最后一个索引位置,则采用负数索引。-1指的是最后一个索引位置,-2为倒数第二个位置

字符 H e l l o   W o r l d
索引 0 1 2 3 4 5 6 7 8 9 10
  -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

 

 

 

1 >>> str[3:-2]2 'lo Wor'3 >>> str[-1]4 'd'5 >>> str[-5:-1]6 'Worl'

3、步长参数默认值为1,当用-1作为步长,意味着从后往前进行

1 >>> str[::2]2 'HloWrd'3 >>> str[::3]4 'HlWl'5 >>> str[::-1]6 'dlroW olleH'7 >>> str[::-2]8 'drWolH'

4、在数字字符串上使用步长,能得到有趣的结果。不同步长和不同起始值,能得到奇数、偶数或者保留数字

1 >>> digits="0123456789" 2 >>> digits[::2] 3 '02468'  #偶数 4 >>> digits[1::2] 5 '13579'  #奇数 6 >>> digits[::-1] 7 '9876543210' #反转 8 >>> digits[::-2] 9 '97531'  #反转后的奇数10 >>> digits[-2::-2]11 '86420'  #反转后的偶数

 5、更多的扩展:

  • step为正,则从左到右切片,如果 start > end,则为空
  • step为负,则从右到左切片,如果 start < end,则为空
  • start 和 end 为空,前者表示最开始,后者表示最后一个, 同时为空的时候,表示取所有。至于方向,取决于 step

可以总结一句规律,step 为正表示从左到右切片,反之为右到左。然后根据index 依次切片

1 >>> a=list(i for i in range(1,11)) 2 >>> a 3 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 4 >>>  5 >>> a[8:3:-1]   6 [9, 8, 7, 6, 5]    # 右->左切片,step 为1,a[8]=9, a[7]=8, ... a[4]=5, 8-3=5个 7 >>>  8 >>> a[10:0:-2] 9 [10, 8, 6, 4, 2]   # 右->左切片, 切片的时候,不存在 index 越界情况,a[10]不存在,a[9]=10, a[7]=8, a[5]=6...10 >>> 11 >>> a[0:10:-2]     # start < end step 为负, 方向为右->左,第一个是 a[0], a[0]的左边就再也没有值了。为空12 []13 >>> 14 >>> a[::-2]        # a[:]表示取所有,step 为负就反方向从右往左取15 [10, 8, 6, 4, 2]16 >>> 17 >>> a[5::-2]       # 右->左,等价于 a[5:0:-2] a[5]=6, a[3]=4, a[1]=218 [6, 4, 2]19 >>> 20 >>> a[:5:-2]       # 右->左, 等价于 a[9:5:-2] a[9]=10, a[7]=8 21 [10, 8]

 【扩展】

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

1 str1 = "00000003210Runoob01230000000" 2 print(str1.strip('0'))  # 去除首尾字符 03 str2 = ", this. "4 str3 = "this,,. "5 print(str2.strip('., '))6 print(str3.strip('., '))

结果为:

1 '3210Runoob0123'2 'this'3 'this'

PS:

lstrip()、rstrip()和strip()类似,只是仅针对字符串开头和结尾

转载于:https://www.cnblogs.com/striving123/p/9133469.html

你可能感兴趣的文章
Ubuntu下安装GCC和Wireshark的准备
查看>>
emWin 文字图形同时刷新导致图形显示异常
查看>>
Merge k Sorted Lists
查看>>
注册表“CLSID”下面的“InprocServer32”子键是什么?
查看>>
gopm 下载 网络连接出错
查看>>
shell脚本检测网络是否畅通
查看>>
shell脚本通过ping命令来获取平均延时
查看>>
epoll
查看>>
冲刺第三天
查看>>
DPDK LPM路由存储与查找
查看>>
Oracle 11g R2(11.2.0.4) RAC 数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件
查看>>
hdu Numerically Speaking
查看>>
java题目练手
查看>>
简明 Vim 练级攻略【转】
查看>>
AC日记——Rmq Problem bzoj 3339
查看>>
AC日记——[SDOI2009]HH的项链 洛谷 P1972
查看>>
"undefined reference to" 多种可能出现的问题解决方法
查看>>
linux; 文件名乱码;问价名出现问号
查看>>
15. 3Sum
查看>>
JavaSE第十天20160816
查看>>