Python数据类型——字符串

字符串定义

由数字、字母、下划线组成的一组字符串

字符串列表的两种增长方式:从左到右索引默认从0开始;从右到左索引默认从-1开始

索引&切片

索引:取出数组s中的某一个人元素

strl = 'QingDao'
str1[1] = i
str1[-1] = o

切片:从数组S中取出特定多个元素

形式:str1[start:stop:step](即起点:终点:步长)
【注】:对于切片str[M:N]是取出下标为MN-1的数组元素

切片的种类:
设str = [2,3,4,5,6]

  1. 一个参数

    • str[1:]//从下标为1的元素选择到最后一个元素 [4,5,6]

    • str[:3]//从下标为0的元素选择到下标为2的元素,不包括下标3的元素,返回[2,3,4]

    • str[::2] //从下标为0的元开始,最后一个%2为0的下标元素为止 [2,4,6]

    • str[::-1] // 逆序输出所有元素,返回[6,5,4,3,2]

  2. 两个参数

    • str[1:-2]// [3,4]

    • str[-2:3]//第一个参数经过计算大于等于后一个,返回空数组

    • str[-13:3]//第一个参数归零,返回[2,3,4]

    【注】:参数为负数时,若负数小于-n,则负数归零;

  3. 三个参数

    • str[::-1]//从头到尾, 反转数组,返回[6,5,4,3,2]

    • str[-1::-2]//从尾到头,返回[6,4,2]

    【注】:没有第三个参数时,切片智能从左向右,若第一个参数大于等于第二个参数,返回空数组
    【注】:第三个参数<0时, 切片方向可以被改变, 此时没有上述限制


字符串运算

  1. 连接 ' + '

    str2 = "Qing" + "dao"

    [out] Qingdao

  2. 重复 '*'

    str = "Qing" * 3

    [out] QingQingQing

常见转义字符

  1. 换行 \n

    print("QingDao\nUniversity")

    [out]
    QingDao
    University

    【注】:可以用r"~"表示内部字符不转义

    print(r"QingDao\nUniversity")

    [out]QingDao\nUniversity

  2. \\ 反斜杠; \"双引号; \t制表符

字符串常见方法

  1. str.capitalize():即格式化,返回字符串的副本, 其首字母大写,其余字符小写

    str = "qing"
    str.capitalize()

    [out] Qing

  2. str.count(sub,start,end): 统计某序列中特定子串出现的次数

    str = "aaabccabccbabc"
    str.count("abc", 2, 5)

    [out] 1

  3. str.endswith(sub): 判断母串是否以子串为后缀结束

    str = "aabc"
    str.endswith("bc")

    [out] True

  4. str.startswith(sub,start,end): 用于检索母串是否以指定子串开头,如果时返回True;反之返回False

    str = "aabc"
    str.startswith("ab")

    [out] False

  5. str.find(sub[,start[,end]]):返回母串中子串第一次出现的索引位置,未找到返回-1

    str = "aabc"
    str.find("ab")

    [out] 1

  6. str.split(sep = None): 使用sep作为分隔符拆开字符串, 返回字符串中单词的列表, 默认为空格

    str = "abcbdb"
    str.split('b')

    [out] ['a','c','d','']

  7. str.strip([chars]):删除字符串首尾指定字符集chars

    str = "QingDao University"
    str.strip("Qsty")

    [out] ingDao Universi

  8. str.upper():将串中所有字符转为大写

  9. str.lower(): 将串中所有字符转为小写

  10. str.join(sub):将序列中的元素以指定的字符连接成一个新的字符串

    '-'.join("abc")

    [out]a-b-c

字符串重要方法

replace()

描述

将母串中的部分字符替换为新的字符,并返回新的字符串

语法&参数

str.replace(old, new[,max])

  • old:旧字符串
  • new:新字符串
  • max:最大替换次数,可选参数

Ex

str = "this is ..."
print(str.replace("is","was"))

[out]: "this was..."

注:replace不会改变原字符串内容

strip()

描述

用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,并返回一个新的字符串

注: 只会删除开头或者结尾的字符,不能删除中间部分的字符

语法及参数

str.strip([chars])

  • chars:移除字符串头尾指定的字符序列

Ex.

str = "00000003210Runoob01230000000"; 
print str.strip( '0' );  # 去除首尾字符 0
 
 
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip();

[out]:
3210Runoob0123
Runoob

transalte()

描述

可以根据给出的转换表进行字符串的转换,还可以过滤指定字符。最后返回新的字符串。

语法&参数

str.transalte(table[,deletechars])

  • table:翻译表,通过方法maketrans转换
  • deletechars:字符串中要过滤的字符列表

Ex.

from string import maketrans   # Required to call maketrans function.
 
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
 
str = "this is string example....wow!!!";
print str.translate(trantab, 'xm');

[out]:th3s 3s str3ng 21pl2....w4w!!!

注:Python2.7之后, translate只有一个参数transtab;再建立转换表时,新旧表长必须相等

posted @ 2020-12-28 18:39  道恩有人鱼线  阅读(206)  评论(0)    收藏  举报