python中的索引、切片(分片)、字符串翻转、字符串拷贝、字符串连接

字符串是字符的有序集合,可以通过其位置来获得具体的元素。在python中,字符串中的字符是通过索引来提取的,索引从0开始。

1:python中的索引:string[index]

p='helloworld'
print p[4]  #结果是0
print p[-1]   #结果是d,最后一位

超出索引:IndexError: string index out of range

2:python中的分片,分片的含义是分片提取相应部分数据: 通常上边界不包括在提取字符串内

格式:string[头下标:尾下标:步长] ,步长默认为1 越界不会报错,取到结尾

  • 如果没有指定值,则分片的边界默认为0和序列的长度
  • str[1:3]获取从偏移为1的字符一直到偏移为3的字符串,不包括偏移为3的字符串  
  • str[1:] 获取从偏移为1的字符一直到字符串的最后一个字符(包括最后一个字符)
  • str[:3] 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串   
  • str[:-1] 获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串)   
  • str[:]  获取字符串从开始到结尾的所有元素                                            
  • str[-3:-1] 获取偏移为-3到偏移为-1的字符,不包括偏移为-1的字符             
  • str[-1:-3]和str[2:0] 获取的为空字符,系统不提示错误 
  • 分片的时候还可以增加一个步长,str[::2] ,表示步长为2

p='helloworld'
print p[0:4]  #结果为hell
print p[:]   #结果为helloworld
print p[0:5:2]  #结果为hlo

3:python中字符串“拷贝” 分片中的 str[:]

4: python中字符串“翻转” 分片中的 [::-1]

name ='hello world'
print name[::-1]    #结果输出 dlrow olleh

5:字符串连接

+:可以用加号,需要先转成string再做拼接

每连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,大量字符串拼接时,效率低

name ='小明'
age = 12
print name + '今年'+ str(age) +'岁了啊!'  输出:小明今年12岁了啊!
join 语法:'sep'.join(seq)
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
name = 'ABCDEFGH'
print '+'.join(name) 输出:A+B+C+D+E+F+G+H

注意*加号连接效率低是在连续进行多个字符串连接的时候出现的,如果连接的个数较少,加号连接效率反而比join连接效率高

字符串连接也可以使用之前说的 format和%

猜你喜欢

转载自blog.csdn.net/xxlovesht/article/details/80391996