zoukankan      html  css  js  c++  java
  • (python)数据结构---字符串

    一、概述

    • 由一个个字符组成的有序序列。
    • 使用单引号、双引号、三引号引住的字符序列。
    • 不可变、线性的数据结构。

    二、字符串的相关操作

    1、元素访问----下标

    • 字符串是线性的数据结构,可以使用索引去访问元素。
    • 索引不可超界,否则抛异常IndexError。
    • 字符串是可迭代的对象。
    1 string = "hello"
    2 print(string[1])

    运行结果如下:
    e
    1 string = "hello"
    2 for s in string:
    3     print(s)

    运行结果如下:

    h
    e
    l
    l
    o

    2、“string”.join(iterable)

    • 使用string作为分隔符,将可迭代对象连接起来。
    • 可迭代对象本身内的元素必须是字符串类型。
    • 返回一个新的字符串,原字符串不变。
    1 lst = ['1', '3', 'a']
    2 string = "-".join(lst)
    3 print(string)

    运行结果如下:
    1-3-a

    3、+

    • 将两个字符串连接在一起。
    • 返回一个新的字符串。
    1 string1 = 'hello'
    2 string2 = 'python'
    3 string3 = string1 + string2
    4 print(string3)

    运行结果如下:
    hellopython

    4、string.split(sep=None, maxsplit=-1)

    • sep:指定分隔符,缺省状态下以空白字符作为分割符。
    • maxsplit:指定最大分割数,缺省状态下遍历整个字符串。
    • 返回一个新的字符串列表。
    • 从左向右分割。
    • 还有相反的方法rsplit,用法与其一致,只不过这个方法是从右向左开始分割。
    1 string = "I'am a super student"
    2 newstr = string.split('s', 1)
    3 print(newstr)

    运行结果如下:
    ["I'am a ", 'uper student']
    1 string = "I'am a super student"
    2 newstr = string.rsplit('s', 1)
    3 print(newstr)

    运行结果如下:
    ["I'am a super ", 'tudent']

    5、string.splitlines([keepends=False])

    • keepends:是否保留行分隔符(行分隔符有:         等)。
    • 按照行进行分割。
    • 返回一个新的字符串列表。
    1 string = "ab c
    
    de fg
    kl
    z"
    2 newstr = string.splitlines()
    3 print(newstr)

    运行结果如下:
    ['ab c', '', 'de fg', 'kl', 'z']
    1 string = "ab c
    
    de fg
    kl
    z"
    2 newstr = string.splitlines(True)
    3 print(newstr)

    运行结果如下:
    ['ab c ', ' ', 'de fg ', 'kl ', 'z']

    6、string.partition(sep)

    • 遇到指定的分隔符sep就将字符串分割为三部分(头、分隔符、尾),如果没有找到分隔符,就返回头、2个空元素三部分个部分。
    • 返回一个新的元组。
    • 从左向右开始分割。
    • 还有一个相反的方法rpartition,用法和该方法一致,rpartition是从右向左开始分割的。
    1 string = "I'm a super student"
    2 newtuple = string.partition('s')
    3 print(newtuple)

    运行结果如下:
    ("I'm a ", 's', 'uper student')

    7、string.upper()

    • 将字符串中的字母全部大写。
    • 返回一个新的字符串。
    • 与其相反的还有一个方法string.lower(),将字符串中的字母全部小写。
    1 string = "I'm a super student"
    2 newstr = string.upper()
    3 print(newstr)

    运行结果如下:
    I'M A SUPER STUDENT

    8、string.swapcase()

    • 将字符串中的字母进行大小写互换
    • 返回一个新的字符串。
    1 string = "A b"
    2 newstr = string.swapcase()
    3 print(newstr)

    运行结果如下:
    a B

    9、string.title()

    • 将字符串中的每个单词的是首字母大写。
    • 返回一个新的字符串。
    1 string = "hello python"
    2 newstr = string.title()
    3 print(newstr)

    运行结果如下:
    Hello Python

    10、string.capitalize()

    • 将首个单词的字母大写。
    • 返回一个新的字符串。
    1 string = "hello python"
    2 newstr = string.capitalize()
    3 print(newstr)

    运行结果如下:
    Hello python

    11、string.center(width[, fillchar])

    • width:按照指定的宽度将字符串居中。
    • fillchar:要填充的字符。
    • 返回一个新的字符串。
    1 string = "abc"
    2 newstr = string.center(10, "*")
    3 print(newstr)

    运行结果如下:
    ***abc****

    12、string.zfill(width)

    • 居右对齐,左边用0填充。
    • 返回一个新的字符串。
    1 string = "abc"
    2 newstr = string.zfill(10)
    3 print(newstr)

    运行结果如下:
    0000000abc

    13、string.ljust(width[, fillchar])

    • 居左对齐,其余空白位置根据指定的字符进行填充。
    • 返回一个新的字符串。
    • 还有一个与其相反的方法string.rjust(width[, fillchar]),居右对其,其余位置按照指定的字符进行填充。
    1 string = "abc"
    2 newstr = string.ljust(10, "*")
    3 print(newstr)

    运行结果如下:
    abc*******
    1 string = "abc"
    2 newstr = string.rjust(10, "*")
    3 print(newstr)

    运行结果如下:
    *******abc

    14、string.replace(old, new[, count])

    • old:要被替换的字符。
    • new:要替换的新字符。
    • count:替换的次数,不指定就是全部替换。
    • 从字符串中找到匹配的字符old,替换为新的字符new,返回新的字符串。
    1 string = "aabbcc"
    2 newstr = string.replace('b', '*' )
    3 print(newstr)

    运行结果如下:
    aa**cc

    15、string.strip([chars])

    • 从字符串两端去除指定字符集chars中的所有字符。
    • 如果chars没有指定,则去除两端的空白字符。
    • 还有两个与其相对应的方法lstrip,它是从左开始去除指定字符集中的字符;rstrip,它是从右开始去除指定字符集中的字符。
    1 string = "
     
     	 Hello Python 
     	"
    2 newstr = string.strip()
    3 print(newstr)

    运行结果如下:
    Hello Python
    1 string = "I am very very very sorry"
    2 newstr = string.strip('Iay')
    3 print(newstr)

    运行结果如下:
     am very very very sorr

    16、string.find(sub[, start[, end]])

    • 在指定的区间[start, end],查找子串sub,如果找到就返回对应的索引,没有找到就返回-1.
    • 与其相反的方法是rfind,用于与其一直,只不过rfind是从右往左查找。
    • 还有一个与其相似的方法是string.index(sub[, start[, end]]),不同的地方是如果没有找到它会抛出异常ValueError。
    1 string = "I am very very very sorry"
    2 newstr = string.find('very')
    3 print(newstr)

    运行结果如下:
    5

    17、string.count(sub[, start[, end]])

    • 在指定的区间[start, end],统计子串sub出现的次数。
    1 string = "I am very very very sorry"
    2 newstr = string.count('very')
    3 print(newstr)

    运行结果如下:
    3

    18、startswith(prefix[, start[, end]])

    • 在指定的区间[start, end],判断字符串是否以prefix开头
    • 如果是返回Trun,反之返回False
    • 与之相反的还有一个方法string.endswith(suffix[, start[, end]]),它是用来判断字符串是否以suffix结尾的。
    1 string = "I am very very very sorry"
    2 newstr = string.startswith('I')
    3 print(newstr)

    运行结果如下:
    True

    19、字符串判断is系列方法

    • string.isalnum()  判断字符串是否有字母和数字组成
    • string.isalpha()  判断字符串是否是字母组成
    • string.isdecimal()  判断字符串是否只包含十进制数字
    • string.isdigit()  判断字符串是否全部数字(0-9)
    • string.isdentifler()  判断字符串是否由字母和下划线开头,其他都是数字,字母、下划线
    • string.islower()  判断字符串是否全部小写
    • string.isupper()  判断字符串是否全部大写
    • string.isspace()  判断字符串是否只包含空白字符
  • 相关阅读:
    JavaScript连载32-常用的鼠标事件
    Java连载138-数据库删除数据以及编译预处理
    C连载22-scanf转换说明中的修饰符
    Android连载32-实现登录密码存储功能
    JavaScript连载31-图片动态切换以及关闭图片案例
    搭建一个开源项目15-解决安装mysql不成功的问题
    Java连载137-更新数据和删除数据
    从零开始学VUE之组件化开发(注册父子结构组件)
    从零开始学VUE之组件化开发(注册局部组件)
    从零开始学VUE之组件化开发(注册全局组件)
  • 原文地址:https://www.cnblogs.com/Sweltering/p/9885332.html
Copyright © 2011-2022 走看看