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)

原文地址:https://www.cnblogs.com/suyuanyuan/p/13068199.html