• python学习手册:第七章——字符串


    字符串

    • 字符串严格意义上来讲是单个字符组成的序列

    序列的操作

    • 获取长度:len(str)
    • 通过索引取值:str[0]
    • 反向索引:str[-1] #序列倒序索引从-1开始
    • []内可以为任何表达式,不仅仅是一个数字常量
    • 分片:str[1:3],包含左不包含右,str[1:3]截取的为str[1]+str[2]
    • 分片中左括号默认为0,右括号默认为str的长度,常用变体:

    分片操作

    s = spam
    s[:3] > 'spa'
    s > "spam"
    s[0:3] > 'spa'
    s[:-1] > "spa"
    s[:] > 'spam'
    s[1:] > 'pam'
    d = "123456789"
    d[1:7:2] > '246'切片然后以2的步长取值
    d[::-1] > 倒序取值,即把字符串反转过来
    d[7:1:-2] > '864'反向切片 
    
    • 字符串具有不可修改的特性,如果需要对字符串进行修改,另外使用+进行字符串拼接
    str = 'spam'
    str = s[:1]+'z'+s[2:] > 'szam'
    s * 4 > 'spamspamspam'
    
    • 字符串find方法,查找指定字符(串)在母字符串中的位置:查到返回索引,未查到返回-1- replace方法
    str = 'spam'
    str.find('pa') > 1
    
    • 字符串的join方法
    #join方法可以把一个列表,字典等的元素拼接成一个字符串,元素需要为字符串,字典只会拼接键
    >>> s = {'1':'2','3':'4'}
    >>> d = "".join(s)
    >>> d
    '13'
    
    • 字符串replace方法:替换字符串指定子字符串,但是并不改变原字符串
    s = 'spam'
    r = s.replace('pa','xyz')
    t = s,r
    print(s,r,t) > 'spam'   'sxzm'  ('spam','sxyzm') #t为两个字符串组成的元组
    
    • 字符串通过分隔符拆分方法、大小写变换方法、测试字符串内容方法 去掉字符串后的空格字符
    line = 'aaa,bbb,ccc'
    line.split(',') > ['aaa','bbb','ccc'] #通过,进行字符串的分隔
    line.upper() > 'AAA,BBB,CCC' # 边小写,lower
    line.isalpha() > true #数字:isdigit,如果不全为字母则为Flase,数字同逻辑
    s = "qwer
    " s.rstrip() > 'qwer' #去尾部空格
    

    常见的字符串常量及表达式

    • s = '' 空字符串
    • s = "spam's" 单双引号相同,混用时以第一个为准
    • s = 'a p rx00m'# 为换行, 为一个tab,x为十六进制表达式,后接两个数字表示编码
    • s = '''123''' #可以换行的一长串字符串
    • s = r' x' #加r表示忽略转义字符,本质是系统处理时自动把字符串替换为' \x'
    • s[i],s[i:j],len[s] #索引,分片,求长度,注意:字符串可读不可写,s[2] = "1"会报错
    • s.find("pa") #搜索子字符串位置的索引,未找到会报-1
    • s.rstrip() #只用于去掉字符串末尾的字符,默认为空格
    • s.replace('pa','xx') #替换指定字符串,s.replace('pa','')可用于删除指定字符
    • s.split(",") #以指定字符分割字符串
    • s.isdigit() #检验是否为纯数字
    • "spam".join('12345') #以join的每个字符开头复制一次字符串:'1spam2spam3spam4spam5spam
    • s.endswith(s1) #验证s是否为s1结尾的字符串
    • for x in s ; print (x) #迭代输出
    • "pa" in "spam" # 成员关系
    • [s*2 for s in "spam"] # 迭代生成列表['ss', 'pp', 'aa', 'mm']
    • map()

    字符串的长度

    len("abc x00") #值为6,及整个转义符号视为一个长度
    len(r"abc x00") #值为11

    字符串的格式化

    • "a %s sport %d" % ('dd',1)
    • "a {0} {1}sport".format("ee",'dd')
    • 通过字典对字符串进行格式化
    reply = '''
    Greeting 
    hello %(name)s!
    your age is %(age)s
    '''
    values = {"name":"bob","age":40}
    print(reply%values)
    
  • 相关阅读:
    Spark学习之Spark调优与调试(二)
    Spark学习之Spark调优与调试(一)
    Spark学习之在集群上运行Spark
    Spark学习之编程进阶总结(二)
    Spark学习之编程进阶总结(一)
    Spark学习之数据读取与保存总结(二)
    Spark学习之数据读取与保存总结(一)
    Eclipse 出现项目没有错但是项目名称却有红色感叹号或者红叉的解决办法
    CF1284E New Year and Castle Construction
    CF559E Gerald and Path
  • 原文地址:https://www.cnblogs.com/yingyingdeyueer/p/11769314.html
Copyright © 2020-2023  润新知