字符串的子串可以通过切片标志来表示:两个由冒号隔开的索引。

>>> word
'HelpA'
>>> word[4]
'A'
>>> word[0:2]
'He'
>>> word[2:4]
'lp'
>>> word[:2] # The first two characters
'He'
>>> word[2:] # All but the first two characters
'lpA'
>>> word[:2] + word[2:] #切片操作有一个很有用的不变性: s[:i] + s[i:] 等于s。
'HelpA'
>>> word[:3] + word[3:]
'HelpA'
索引可以是负数,计数从右边开始,例如:
>>> word[-1] # The last character
'A'
>>> word[-2] # The last-but-one character
'p'
>>> word[-2:] # The last two characters
'pA'
>>> word[:-2] # All but the last two characters
'Hel'   

理解切片的最好方式是把索引视为两个字符之间的点,第一个字符的左边是0,字符串中第n个字符的右边是索引n,例如:

+---+---+---+---+---+

|  H |  e |  l  |  p  |  A |

+---+---+---+---+---+

0    1    2   3    4    5

-5   -4  -3  -2   -1

第一行是字符串中给定的0到5各个索引的位置,第二行是对应的负索引。从i到j的切片由这两个标志之间的字符组成。
对于非负索引,切片长度就是两索引的差。例如,word[1:3]的长度是2。

最新文章

  1. poj3250
  2. Double Checked Locking 模式
  3. Oracle存储过程记录异常
  4. JSP内置对象有哪些呢?
  5. Android利用Fiddler进行网络数据抓包
  6. ID3决策树的Java实现
  7. 【POJ】【1704】Georgia and Bob
  8. background-attachment:fixed应用
  9. codeforces 713D D. Animals and Puzzle 二分+二维rmq
  10. 第一次PS练习
  11. 【Beta】 第二次Daily Scrum Meeting
  12. ACM学习之路___HDU 5723(kruskal + dfs)
  13. 串口接收模块(verilog) 波特率115200
  14. Effective C++ ——让自己习惯C++
  15. MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken
  16. Java多线程并发最佳实践
  17. SaaS教父:我眼中最糟糕的9条SaaS建议(转)
  18. spoj Help the Military Recruitment Office!
  19. C/C++/Java 程序计时功能函数
  20. [转载]Java读取Excel中的单元格数据

热门文章

  1. 【转】自编码算法与稀疏性(AutoEncoder and Sparsity)
  2. Go语言【第九篇】:Go数据结构之:数组
  3. CSS定义input disabled样式
  4. BZOJ4835 遗忘之树
  5. A表数据插入到B表(表结构不一致)
  6. 【区间DP】【lgP3146】248
  7. 搭建openresty需要注意到的地方
  8. django error: DisallowedHost: Invalid HTTP_HOST header: ''. You may need to add u'' to ALLOWED_HOST
  9. 微服务学习一:idea中springboot集成mybatis
  10. java 面向对象编程(OOP)