• Python 序列操作符与函数(字符串)


    Python序列包括:元组、列表、字符串。

    1.1 序列共同支持的函数:

    函数 功能 说明
    cmp(seq1,seq2) 比较序列大小 从左到右依次比较,直到比较出大小
    len(seq1) 获取序列长度 如果seq1为字符串,返回字符串中字符数,否则返回序列中元素个数
    max(seq1)或min(seq1)   求最大值或最小值 seq1字符串:返回字符串中ASCII码最大或最小的字符。也可比较序列中元素或多个序列
    sorted(seq1) 按由小到大顺序排列  
    sum(seq1) 求和 对数字型列表或元组中的各元素求和
    list(seq1)或tuple(seq1) 通过浅拷贝数据创建一个新的列表或者元组 同常用于将元组转换为列表,或将列表转换为元组

    如果对应元素的类型不同,则比较遵循下列原则:

    (1)均为数字,强制类型转换后比较大小。

    (2)若一方为数字,则另一方大,不同类型元素中数字最小。

    (3)如果均不是数字,则通过类型名字字母顺序进行比较。

    (4)如果一方尚有元素,另一方已至列表末尾,先结束的小。

    1.2 序列操作符:

    序列操作符 功    能 说    明
    seq[index] 获取seq中index处的元素 index为整型数字,正向索引从0开始,反向索引从-1(最后一个元素)开始
    seq[index1:index2] 获取index1与index2-1之间的元素 index2-1为最后获取的元素
    seq[index1:index2:step] step指定切片的步长(间隔)  
    seq*expr 复制expr份的seq expr为整型数字
    seq1+seq2 连接两个序列 seq1、seq2为相同类型序列对象
    obj in seq 判断obj是否为seq中的成员  
    obj not in seq 判断obj是否不是seq中的成员  

    例子:

    >>>s='hello'
    >>>s[2:5]
    'llo'
    >>>s[[-3:-1]
    'll'
    >>>x=''have a nice day'
    >>>x[0:10:3]
    'he c'
    >>>'ha' in x
    True

     

    2.1 字符串:

    用str函数创建字符串:

    >>>s=str(56)
    >>>s
    '56'

    单双引号作界定符号,三引号通常用作包含多行文本字符串的界定符:

    >>>y='''abc
    bca
    ddd'''
    >>>y
    'abc\nbca\nddd'
    >>>print y
    abc
    bca
    ddd

    更新字符串:

    >>>var1 = 'Hello World!'
    >>>print "更新字符串 : ", var1[:6] + 'Runoob!'
    更新字符串 :  Hello Runoob!

    2.1.1 通常意义字符串:转义字符有:\n 换行、\\ 反斜杠、\t 制表、\' 单引号、\r 回车、\" 双引号。

    2.1.2 原始字符串:以R或r开始,对不其中的转义字符进行转义:

    >>>s='hello\nworld'
    >>>print(s)
    hello
    world
    >>>ss=r'hello\nworld'
    >>>print(ss)
    hello\nworld

    2.1.3 Unicode字符串:以U或u开始的字符串。

    2.2 字符串常用函数:

    函    数 说    明
    string.count(str, beg=0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数。
    string.endswith(obj, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,返回 True 或者 False。(如果只有一个参数则是 beg)
    string.find(str, beg=0, end=len(string))     (1) 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1。
    string.format()      (2) 格式化字符串
    string.index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在 string中会报一个异常。
    string.join(seq)     (3) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。
    string.partition(str) 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。   
    string.replace(str1, str2,  num=string.count(str1)) 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次。(不指定num则全部替换)
    string.split(str="", num=string.count(str))  (4) 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串。(默认使用空格)
    string.strip([obj])     (5) 移除字符串头尾指定的字符(默认为空格)lstrip(去掉字符串左侧空格)、rstrip(去掉字符串右侧空格)。中间部分不会移除
    string.translate(table, del="")     (6) 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

    (1)string.find(str, beg=0, end=len(string)):

    >>>info = 'abca'
    >>> print info.find('a')    # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
    0
    >>> print info.find('a',1)  # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
    3
    >>> print info.find('3')    # 查找不到返回-1
    -1

    (2)string.format():

    >>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
    'hello world'
     >>> "{0} {1}".format("hello", "world")  # 设置指定位置
    'hello world'
     >>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
    'world hello world'

    (3)string.join(seq):(要直接连接字符串序列可以用'',即两个单引号)

    >>>str = "-";
    >>>seq = ("a", "b", "c"); # 字符串序列
    >>>print str.join( seq );
    a-b-c

    (4)string.split(str="", num=string.count(str)):

    >>>a='I love you'
    >>>a.split(' ',1) #以空格为分隔符分隔字符串a,只分隔一个空格
    ['I','love you']
    >>>import re
    >>>a='Beautiful, is; better*than\nugly' # 四个分隔符为:,  ;  *  \n
    >>>x= re.split(',|; |\*|\n',a)
    >>>print(x)
    ['Beautiful',' is',' better','than','ugly']

    (5)string.strip([obj]):

    >>>a='\t errt \t'
    >>>a.strip()
    'errt'
    >>>a.lstrip()
    'errt \t'
    >>>a.rstrip('t \t')
    '\t err'
    >>>str = "0000000this is string 0000example....wow!!!0000000";
    >>>print str.strip( '0' );
    this is string 0000example....wow!!! #输出结果中间部分的 0 还是存在的

    (6)string.translate(table, del=""):

    >>>from string import maketrans   # 引用 maketrans 函数。
    >>>intab = "aeiou"
    >>>outtab = "12345"
    >>>trantab = maketrans(intab, outtab)    #用 maketrans 创建翻译表
    >>>str = "this is string example....wow!!!";
    >>>print str.translate(trantab, 'xm');   #过滤了xm字符
    th3s 3s str3ng 21pl2....w4w!!!
  • 相关阅读:
    sql2000/2005获取表的列SQL文
    SQL Server未公开的两个存储过程
    HNOI2008 玩具装箱
    noi2004 郁闷的出纳员
    狼抓兔子(平面图转对偶图求最短路)
    pku1917 Automatic Poetry
    幸福的道路
    闲话电子商店(eshop)的设计和经营2
    基金清仓,晚上欢聚
    早上想来想去,把自己的基金卖了1/5
  • 原文地址:https://www.cnblogs.com/Vinson404/p/7295579.html
Copyright © 2020-2023  润新知