• 数字、字符串、列表的常用操作


    可变不可变类型 

    可变类型:值改变,id不变-------改变原值

    不可变类型:值改变,id-------生成新的值

    不可变类型
    X=9
    print(id(x))   # 140708793148496
    X=10
    print(id(x))   # 140708793148528
    
    可变类型
    l = [‘a’,’b’,’c’]
    print(id(l))   # 2177056384136
    l[0]=’A’
    Print(l,id(l)) # ['A', 'b', 'c']  2177056384136
    

    数字类型

    整型int

    1、用途:记录年龄、等级、数量

    2、定义方式

      age = 10   # age=int(10)

      数据类型转换: 只能将纯数字的字符串转成int

    x=int('123456')
        print(x,type(x))  #123456 <class 'int'>
        x=int('12.3')     # Value Error : invalid literal for int() with base 10: '12.3'

    浮点型float

    1、用途:记录身高、薪资、体重

    2、定义方式

      salary = 10.1   # salary=float(10.1)

      数据类型转换: 只能将包含小数的字符串转成

    x=float('3.1')
    print(x,type(x)) # 3.1 <class 'float'>
    

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

    数字类型总结:

    1、存一个值

    2、不可变类型

    字符串类型

    1、用途:记录描述性质的状态  
    2、定义方式:在单引号、双引号、三引号内包含一串字符串
      msg='hello' # msg=str('hello')

    数据类型转换:所有类型都可以被str转成字符串类型
    res=str([1,2,3])
    print(res,type(res))

    3、常用操作+内置的方法
    *****
    3.1、按索引取值(正向取+反向取) :只能取
    msg='hello'
    print(msg[0],type(msg[0]))
    print(msg[-1])
    print(msg[-2])
      h <class 'list'>
      o
      l msg[0]='H' # 只能取 TypeError: 'str' object does not support item assignment 3.2、切片(顾头不顾尾,步长) msg='hello world' res=msg[0:3:1] # 0 1 2 print(res) print(msg)
      hello world
      hel res=msg[:] res=msg[::2] # 0 2 4 6 8 10 print(res)
      hlowrd msg='hello world' res=msg[-1:-12:-1] res=msg[-1::-1] res=msg[::-1] print(res)   dlrow olleh
    3.3、长度len msg='hello world' print(len(msg))
      11 3.4、成员运算in和not in:判断一个子字符串是否存在于大字符串中 msg='kevin is dsb' print('kevin' in msg) print('dsb' in msg) print('aaa' not in msg) print(not 'aaa' in msg) #取反
      True
      True
      True
      True 3.5、移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格 #strip 清除 msg=' sies ' res=msg.strip() print(res,id(res)) print(msg,id(msg))
      sies 1352119010056
          sies   1352119034864 print('******eg**on*****'.strip('*'))   eg**on print('***+-/***egon#@$*****'.strip('*+-/#@$'))
      egon name=input('username>>>: ').strip() # name='egon ' pwd=input('password>>>: ').strip() if name == 'egon' and pwd == '123': print('login successful') else: print('输错了。。。')
      清除输入词前后的空格 3.6、切分split:针对有规律的字符串,按照某种分隔符切成列表 info='egon:18:male' res=info.split(':') print(res,type(res)) print(res[0],res[1])
       cmd='get|a.txt|33333' print(cmd.split('|',1)) 用:号作连接符号将纯字符串的列表拼接成一个字符串 l=['egon', '18', 'male'] # 'egon:18:male' res=l[0]+':'+l[1]+':'+l[2] res=':'.join(l) print(res) 3.7、循环 for item in 'hello': print(item)

     ****

    1、strip,lstrip,rstrip
    print('******egon***********'.strip('*'))
    print('******egon***********'.lstrip('*'))
    print('******egon***********'.rstrip('*'))
    
    2、lower,upper
    'Abc123'.lower()  # 大小字母变小写
    'Abc123'.upper()  # 小写字母变大写
    'Abc123'.swapcase()  # 大小写字母反转
    
    3、startswith,endswith
    msg='xxx is dsb'
    print(msg.startswith('xxx'))
    print(msg.endswith('b'))
    
    4、判断
    ''.isdigit()    # 判断是否全是数字(bytes, unicode)
    ''.isnumeric()  # 判断是否全是数字(unicode, 中文数字,罗马数字)
    ''.isalpha()    # 判断是否由字母和中文组成
    ''.isalnum()    # 判断是否由字母和数字组成
    ''.islower()/isupper()  # 判断是否全书小写/大写
    
    5、format的三种玩法
    res='my name is %s my age is %s' %('egon',18)
    print(res)
    
    res='my name is {name} my age is {age}'.format(age=18,name='egon')
    print(res)
    
    res='my name is {} my age is {}'.format('egon',18)
    res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18)
    print(res)

    格式化输出

    name = 'tom'

    1、占位符

      "hi %s, 早上好!" % name  

    2、format

      (1)不带编号,即“{}”

      (2)数字编号,即“{1}”、“{2}”

      (3)带关键字,即“{a}”、“{name}”

         format格式化输出: https://www.cnblogs.com/lovejh/p/9201219.html

    3、f-string(python3.6以后)

      f'{name} 早上好!'

    >>> print('{} {}'.format('hello','world'))    # 不带字段
    hello world
    
    >>> print('{0} {1} {0}'.format('hello','world'))  # 数字编号
    hello world hello
    
    >>> print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 带关键字
    world hello world
    ***
    
    5、split,rsplit
    msg='a:b:c:d'
    print(msg.split(':',1))
    print(msg.rsplit(':',1))
    
    6、replace
    msg='kevin is kevin is hahahah'
    res=msg.replace('kevin','sb',1)
    print(res)
    
    7、isdigit
    print('123123'.isdigit()) # 如果字符串是由纯数字组成的,则返回True
    print('123123   '.isdigit())
    print('123123asdf'.isdigit())
    print('12312.3'.isdigit())
    
    score=input('>>>>: ').strip() #score='asdfasdfasfd'
    if score.isdigit():
        score=int(score)
    
        if score >= 90:
            print('优秀')
        else:
            print('小垃圾')
    else:
        print('必须输入纯数字')
    
    了解的操作
    1、find,rfind,index,rindex,count
    print('123 ke123ke'.find('ke'))
    print('123 ke123ke'.rfind('ke'))
    print('123 ke123ke'.index('ke'))
    print('123 ke123ke'.rindex('ke'))
    
    print('123 ke123ke'.find('xxxx'))   # 找不到返回-1
    print('123 ke123ke'.index('xxxx'))  # 找不到则报错
    print('123 ke123ke'.count('ke',0,6))
    
    2、center,ljust,rjust,zfill
    print('egon'.center(50,'*'))
    print('egon'.ljust(50,'*'))
    print('egon'.rjust(50,'*'))
    
    print('egon'.rjust(50,'0'))
    print('egon'.zfill(50))
    
    3、captalize,swapcase,title
    print('abcdef dddddd'.capitalize())
    print('abcAef dddddd'.swapcase())
    print('abcAef dddddd'.title())
    
    4、is数字系列
    num1=b'4' #bytes
    num2='4' #unicode,python3中无需加u就是unicode
    num3='' #中文数字
    num4='' #罗马数字
    
    bytes与阿拉伯数字组成的字符串
    print(num1.isdigit())     ♡
    print(num2.isdigit())     ♡
    print(num3.isdigit())
    print(num4.isdigit())
    
    阿拉伯数字组成的字符串
    print(num2.isdecimal())     ♡
    print(num3.isdecimal())
    print(num4.isdecimal())
    
    阿拉伯数字中文罗马组成的字符串
    print(num2.isnumeric())     ♡
    print(num3.isnumeric())     ♡
    print(num4.isnumeric())     ♡
    
    5、is其他
    
    ======================================该类型总结====================================
    存一个值
    
    有序
    
    不可变
    msg='                  hello  '
    msg.strip()
    print(msg)

    列表类型

    1、用途:按照位置记录多个值,索引对应值

    2、定义方式:在[]内用逗号分隔开多个任意类型的值

      l=['a',11,11.3,] # l=list(['a',11,11.3,])

      数据类型转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表

      res=list('hello')

      print(res)   #['h', 'e', 'l', 'l', 'o']

      res=list({'a':1,'b':2,'c':3}) 

      print(res)   #['a', 'b', 'c']

    3、常用操作+内置的方法

    *****
    3.1、按索引存取值(正向存取+反向存取):即可存也可以取 l=['a','b','c','d','e'] print(l[0]) print(l[-1]) #e print(id(l)) l[0]='A' print(id(l)) 强调强调强调!!!:对于不存在的索引会报错 l[5]='AAAA' dic={"k1":111} dic['k2']=2222 print(dic) 3.2、切片(顾头不顾尾,步长) l=['a','b','c','d','e'] print(l[1:4]) print(l[::-1]) 3.3、长度 l=['a','b','c','d','e'] print(len(l)) 3.4、成员运算in和not in l=['a','b','c','d','e'] print('a' in l) 3.5、追加与insert l=['a','b','c','d','e'] l.append('xxx') l.append('yyy') print(l) l.insert(0,'xxxx') print(l) 3.6、删除 l=['a','bbb','c','d','e'] del是一种通用的删除操作,没有返回值 del l[0] print(l) dic={'k1':1} del dic['k1'] print(dic) l.remove(指定要删除的那个元素),没有返回值 res=l.remove('bbb') print(l) print(res) l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素 l=['a','bbb','c','d','e'] l.pop(-1) res=l.pop(1) print(l) print(res) 3.7、循环 l=['a','b','c','d','e'] for item in l: print(item) 练习: 队列:先进先出 l=[] # 入队 l.append('first') l.append('second') l.append('third') print(l) # 出队 print(l.pop(0)) print(l.pop(0)) print(l.pop(0)) 堆栈:后进先出 需要掌握的操作 l=['aaa','bb',345] l.clear() l.append([1,2,3]) for i in [1,2,3]: l.append(i) l.extend([1,2,3]) l.reverse() # 顺序颠倒 只有在列表中所有元素都是同种类型的情况下才能用sort排序 l=[1,3,2] l.sort(reverse=True) #[3,2,1] l=['z','d','a'] l.sort() print(l) =======================该类型总结========================= 存多个值 有序 可变
  • 相关阅读:
    noip2015运输计划
    bzoj3595 方伯伯的oj
    noip模拟赛 #3
    圆方树
    AtCoder AGC #4 Virtual Participation
    noip模拟赛 #2
    AtCoder AGC #3 Virtual Participation
    UNR #1 火车管理
    noip模拟赛
    AtCoder AGC #2 Virtual Participation
  • 原文地址:https://www.cnblogs.com/zhouyongv5/p/10578495.html
Copyright © 2020-2023  润新知