05 字符串、列表的常用操作

时间:2021-07-28 10:58:08

 

可变不可变类型 

可变类型:值改变,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
print('Abc123'.lower())
print('Abc123'.upper())

3、startswith,endswith
msg='alex is dsb'
print(msg.startswith('alex'))
print(msg.endswith('b'))

4、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)

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'))
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')

  res=list(123)

  print(res)

 

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

  print(res)

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

 

*****
3.1、按索引存取值(正向存取+反向存取):即可存也可以取 l=['a','b','c','d','e'] print(l[0]) print(l[-1]) 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) l=['z','d','a'] l.sort() print(l) =======================该类型总结========================= 存多个值 有序 可变