• 15期day06 字符串与列表的常用操作


    基本数据类型:

     1:int类型定义:age=int(10)

     名字(参数)

     类型转换:res=int('100010') 纯数字字符串转为int

     名字(参数)

    字符串类型:

     定义:msg='hello'

    类型转换:str可以把任意类型转成字符串

     1.:优先掌握:

     1、1:按索引值取(正向取+反向取),只能取

    msg='hello world'

     正向取:print(msg[0])

     反向取;print(msg[-1])

    只能取:msg[0]='H'(不能改)

    1、2:切片:索引的拓展应用,熊一个大字符串中拷贝一个子字符串

     msg='hello world'

     顾头 不顾尾

     res=msg[0:5]

     步长:

     res=msg[0:5:2]# 0 2 4

     反向步长:

     res=msg[5:0:-1]

     res=msg[:] == res=msg[0:5]

     print(len(msg))#统计字符的个数

    1.3移除字符串两侧的多余的符号strip:默认去除多余空格

     msg='***jdhhebf***'

     msg.strip()

    print(msg.strip) or input().strip()

     1.4切分split:把一个字符按照某种分隔符进行切分,得到一个列表

    #默认分隔符是空格

     info='egon:18:male'

     res=infp.split

     print(res)

     默认分隔符是空格

    指定分隔次数(了解)

    1.7循环

     for x in "hello 你好":

       print(x)

    #2:需要掌握:

     1、strip,lstrip,rstrip

     2、lower,upper(改为小写或者大写)

     msg='AbbbCCCC'

     print(msg.lower())

    #3、starswith.endswith(以什么开始,以什么结束)

    4.format,格式化字符串:format的三种玩法

     print("my name is %s %s" % ("egon",18))

     print("my name is {} {}".format("egon",18))

    print("my name is {x} {y}".format(y=18,x="egon"))

     print("my {1}name is {0} {0}{1}{1}".format("egon",18))

    x='egon'

     y=18

     print(f"=====>{x}===>{y}")

     5:split,rsplit(r为改变从右往左切,将字符串切成字符串)

     6、join:把列表拼接成字符串(以某种分隔符)

    l='egon','16','male'

     ':'.join(l) (用':'来拼接)

     7、replace(替换参数)

     msg='you can you up no can no bb'

     print(msg.replace('you','YOU')

     8.isdigit:判断字符串是否由纯数字组成

    --------------------------------------------------------------------------------

     列表:在[]内用逗号分隔开多个类型的值#

      用途:按照位置存多个值

     l=[111,3.1,'abc',[]]

     list(传入的是任意能够被for循环遍历的类型)

    :常用操作、内置方法:

     1、按照索引存取值:(正向+反向取):可以改也可以取

    l=[111,222,333,444,555]

     l[5]=666#超出索引范围则报错,即不能为列表增加值

     2、切片(顾头不顾尾,步长)

     l=[111,222,333,444,555]

     res=l[0:3]

     print(res)

     print(l)

     3、长度len()

     4/成员运算in和not in

     l=[111,222,333,444,555]

     print(111 in l)

     print(111 not in l)

     5、追加:

     l.append(666)

     print(l)

    5.1 往指定位置前插入值insert

    l.insert(0,123123231231)

     print(l)

     6、删除

     del l[0] #通用删除

     print(l.remove('111')) #l专属删除方法之指定元素删除

    print(l.pop) #默认删除索引-1的值、可以返回所删除的值

     res=l.pop(1)

     print(l)

     print(res)

    7、循环

     l=[111,"aaa",222,333,444,555]

     for item in l:

         print(item)

    需要了解的操作:

    # 1.find,rfind,index,rindex,count

    # 1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1

    >>> msg='tony say hello'

    >>> msg.find('o',1,3) # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引

    1  

    # 1.2 index:同find,但在找不到时会报错

    >>> msg.index('e',2,4) # 报错ValueError

    # 1.3 rfind与rindex:略

    # 1.4 count:统计字符串在大字符串中出现的次数

    >>> msg = "hello everyone"

    >>> msg.count('e') # 统计字符串e出现的次数

    4

    >>> msg.count('e',1,6) # 字符串e在索引1~5范围内出现的次数

    1

    # 2.center,ljust,rjust,zfill

    >>> name='tony'

    >>> name.center(30,'-') # 总宽度为30,字符串居中显示,不够用-填充

    -------------tony-------------

    >>> name.ljust(30,'*') # 总宽度为30,字符串左对齐显示,不够用*填充

    tony**************************

    >>> name.rjust(30,'*') # 总宽度为30,字符串右对齐显示,不够用*填充

    **************************tony

    >>> name.zfill(50) # 总宽度为50,字符串右对齐显示,不够用0填充

    0000000000000000000000000000000000000000000000tony

    # 3.expandtabs

    >>> name = 'tony hello' # 表示制表符(tab键)

    >>> name

    tony hello

    >>> name.expandtabs(1) # 修改 制表符代表的空格数

    tony hello

    # 4.captalize,swapcase,title

    # 4.1 captalize:首字母大写

    >>> message = 'hello everyone nice to meet you!'

    >>> message.capitalize()

    Hello everyone nice to meet you!  

    # 4.2 swapcase:大小写翻转

    >>> message1 = 'Hi girl, I want make friends with you!'

    >>> message1.swapcase()  

    hI GIRL, i WANT MAKE FRIENDS WITH YOU!  

    #4.3 title:每个单词的首字母大写

    >>> msg = 'dear my friend i miss you very much'

    >>> msg.title()

    Dear My Friend I Miss You Very Much 

    # 5.is数字系列

    #在python3中

    num1 = b'4' #bytes

    num2 = u'4' #unicode,python3中无需加u就是unicode

    num3 = '四' #中文数字

    num4 = 'Ⅳ' #罗马数字

    #isdigt:bytes,unicode

    >>> num1.isdigit()

    True

    >>> num2.isdigit()

    True

    >>> num3.isdigit()

    False

    >>> num4.isdigit() 

    False

    #isdecimal:uncicode(bytes类型无isdecimal方法)

    >>> num2.isdecimal() 

    True

    >>> num3.isdecimal() 

    False

    >>> num4.isdecimal() 

    False

    #isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)

    >>> num2.isnumeric() 

    True

    >>> num3.isnumeric() 

    True

    >>> num4.isnumeric() 

    True

    # 三者不能判断浮点数

    >>> num5 = '4.3'

    >>> num5.isdigit()

    False

    >>> num5.isdecimal()

    False

    >>> num5.isnumeric()

    False

    '''

    总结:

        最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景

        如果要判断中文数字或罗马数字,则需要用到isnumeric。

    '''

    # 6.is其他

    >>> name = 'tony123'

    >>> name.isalnum() #字符串中既可以包含数字也可以包含字母

    True

    >>> name.isalpha() #字符串中只包含字母

    False

    >>> name.isidentifier()

    True

    >>> name.islower() # 字符串是否是纯小写

    True

    >>> name.isupper() # 字符串是否是纯大写

    False

    >>> name.isspace() # 字符串是否全是空格

    False

    >>> name.istitle() # 字符串中的单词首字母是否都是大写

    False

    --------------------------------------------------------------------------------

    --------------------------------------------------------------------------------

    需要掌握的操作

    l=[111,222,111,111]

    print(l.count(111))

    l = [10, -1, 3, 2, 11, 7]

    l.sort(reverse=True)

    print(l)

    l = [10, -1, 3, 2, 11, 7]

    l.clear()

    print(l)

    l=['a',1,'b']

    l.reverse()

    print(l)

    l=[11,22,33]

    l.extend([444,555,66])

    print(l)

    #

    l.append([444,555,666])

    print(l)

    # l1=[11,22,33]

    l1列表内存存储

    索引0 值11的内存地址

    索引1 值22内存地址

    索引2 值33内存地址

    l2=l1.copy() # 等同于l4=l1[:]

    l2列表内存存储

    索引0 值11的内存地址

    索引1 值22内存地址

    索引2 值33内存地址

    l2[0]=4444

    print(l2) # [4444, 22, 33]

    print(l1) # [11, 22, 33]

    l3=l1

    l3[0]=4444

    print(l3)

    print(l1)

  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/suyuanyuan/p/13068199.html
Copyright © 2020-2023  润新知