python 字符串方法及列表,元组,字典(一)

时间:2022-11-13 21:40:26

字符串 str

注:

若想要保持单引号和双引号为字符串的一部分

1)单双引号交替使用,

2)使用转义字符\

3)成对三个引号被存在变量里

二、字符串详细用法

字符串的单个取值例 p_1=”hello”

字符串元素定位置,通过索引 正序(→)  反序(←)开始值从0开始,反序从-1开始

取值方式  字符串名[索引值] 例print(p_1[-1])  取o

①字符串切片:字符串名[m:n:k]m:索引起始位置,n:索引结束位置+1,k:步长 默认值为1,取左不取右

1,print(p_1[2:4:10])取ll

2,print(p_1[:])#k=1 m=0 n=到末尾+1 取hello

3,print(p_1[0:]) 取 hello

②字符串的进阶操作:python内置函数的调用

  1. 切换大小写upper()  lower()

例子

s='get'

k='GET'

s_1=s.upper()/k.lower()  #大/小写函数

print(s_1)  结果GET/get

  2.字符串拼接

例子

a="GET"

a1=a[0]+a[1].lower()+a[2]

print(a1)  结果GeT

  3.查找字符串 字符串变量名.find(字符串)

例子

a='easier said than done!'

print(a.find('!'))    结果21

#結果返回字符所在的索引,從左側到右側0開始包括空格,返回-1說明查找的字符不存在

  4.字符串的替换 字符串变量名.replace(目标,替换的值,替换次数)  替换次数不写默认全部替换,只能先替换在进行其他操作

例子:

a='easier said than done!'

a_1=a.replace('a','@',2)

print(a_1)   结果e@sier s@id than done!

  5.split() 根据传入指定的字符去进行切割

例子

a='easier said than done!'

a_1=a.split("a")

print(a_1)   结果['e', 'sier s', 'id th', 'n done!']   #以a为挡板进行切割,结果是列表类型的

指定切割次数

a_1=a.split("a",1)

print(a_1)  结果['e', 'sier said than done!']

空格切割

a='easier said than done!'

a_1=a.split(" ")

print(a_1)

结果['easier', 'said', 'than', 'done!']

特殊切割

a='easier said than done!!!!!'

a_1=a.split("!",5)

print(a_1) 结果 ['easier said than done', '', '', '', '', '']

  6.strip()去除指定元素的头和尾指定的字符,不傳字符時默認去除頭尾的空格

a='easier said than done'

a_1=a.strip("e")

print(a_1) 结果asier said than don

尾部的内容相同一直去除

a='eeeeeasier said than doneeeeee'

a_1=a.strip("e")

print(a_1) 结果asier said than don

字符串的拼接(+)只能是字符串,格式相同类型相同时用+

a='hello'

a_1='world'

a_2=a+" "+a_1

print(a_2) 结果hello world

附加知识

1、字符串转换

①整数利用str()可以转换为字符数,但是字符串不能变为数值型

print(a+str(8888)+a_1) 结果hello8888world

②字符串的为数字的可以利用int()转成字符串

print(type(int("6777")))  结果<class 'int'>

③str(数据值或者是变量名)函数直接强制转换为字符串

2、格式化输出

①%s输出一个字符串 占坑 %d 数字

按顺序赋值

name="jack"

age=18

print("2019年%s參加體育比賽,那年他只有%d歲!"%(name,age))

结果 2019年jack參加體育比賽,那年他只有18歲!

②format用{}来占坑,如果不指定顺序就按顺序赋值,少赋值的坑就会报错

name="张三"

date="10月1日"

age=18

print("2019年{1}{0}參加體育比賽,那年他只有{2}歲!".format(name,date,age))

结果2019年10月1日张三參加體育比賽,那年他只有18歲!

三、列表 关键字 list 标志[]

S=[] #空列表

特点:

1、空列表[],关键字 list

2、列表里面可以放任何类型的数据 元素与元素直接用逗号隔开

3、列表里面的元素都有索引,从0开始和字符串的索引方式是一致的

4、列表取值方式:列表名[索引值]

5、切片;列表名[m,n,k]跟字符串一样

s=[20,"hello",2.0,[1,2,3]]

print(s[0:4:2]) 结果 [20, 2.0]

进阶操作:列表 增删改

增加元素:

1、列表名.append(value)直接追加内容到列表的最后面

s=[20,"hello",2.0,[1,2,3]]

s.append("ok")

print(s) 结果[20, 'hello', 2.0, [1, 2, 3], 'ok']

2、列表名.insert(指定索引值的位置,value)把value插入到指定的位置

s=[20,"hello",2.0,[1,2,3]]

s.insert(1,"ok")

print(s)  结果[20, 'ok', 'hello', 2.0, [1, 2, 3]]

3、extend 扩张列表

s=[20,"hello",2.0,[1,2,3]]

s1=["合理",12,"world"]

s.extend(s1)

print(s) 结果[20, 'hello', 2.0, [1, 2, 3], '合理', 12, 'world']

删除元素

1、删除最后一个元素,列表名.pop()

s=[20,"hello",2.0,[1,2,3]]

s.pop()

print(s) 结果 [20, 'hello', 2.0]

2、指定删除元素 列表名.pop(指定的索引位置)

s=[20,"hello",2.0,[1,2,3]]

s.pop(1)

print(s) 结果 [20, 2.0, [1, 2, 3]]

3、删除所有元素 列表名.clear()

s=[20,"hello",2.0,[1,2,3]]

s.clear()

print(s) 结果[]

4、修改元素 修改列表里面元素的value

列表名[指定索引]=新值 修改指定的索引值

s=[20,"hello",2.0,[1,2,3]]

s[1]=2019

print(s) 结果[20, 2019, 2.0, [1, 2, 3]]

四、元组 关键字 tuple 标志()

t=() 空元组

特点

1、标志是()关键字tuple

2、元组里面可以放任何类型的数据,元素与元素之间用逗号隔开

3、元组里面的元素也都有索引从0开始跟字符串的索引方式是一致的

4、元组取值方式:元组名[索引值]正序 反序

5、切片:元组名[m:n:k]和字符串一样的操作

注:

①与列表的区别:

1、标志不同

2、元组的值不能进行任何的增删改操作,可以修改元组内部的数据但是不能改外部的数据

例如

第一种

s=(1,"hell0",2.0,[1,2,3],(1,2,3))

s[3]=6666

print(s) 结果 报错TypeError: 'tuple' object does not support item assignment

s=(1,"hell0",2.0,[1,2,3],(1,2,3))

s[3][2]=6666

print(s) 结果(1, 'hell0', 2.0, [1, 2, 6666], (1, 2, 3))

第二种

s=[1,"hell0",2.0,[1,2,3],(1,2,3)]

s[4]=6666

print(s) 结果[1, 'hell0', 2.0, [1, 2, 3], 6666]

s=[1,"hell0",2.0,[1,2,3],(1,2,3)]

s[-1][1]=6666

print(s) 结果报错TypeError: 'tuple' object does not support item assignment

②元组单个元素时加逗号称为元组

a=(1)

a=(1,)

a=(“hello”)

a=(“hello”,)

a=([2,4,6])

a=([2,4,6],)

五、字典 关键字 dict 标志{}

特点

1、关键字dict {}

2、值的特点是 键值对 key_value

3、a={}空字典

4、元组列表都是有序的的数据类型,字典是无序的数据类型

5、取值,按照key取值字典名[key],取所有值 字典名.values(),所有的key值 字典名.keys()

例子

a={"age":18,"name":"張三","address":"上海"}

print(a["age"])

print(a.values())

print(a.keys())

结果

18

dict_values([18, '上海', '張三'])

dict_keys(['age', 'address', 'name'])

6、增删改

增加值:a[新key]=value

修改值:a[已存在的key]=新value

删除值:字典名.pop(key)

例如

a={"age":18,"name":"張三","address":"上海"}

a["sex"]="男"

a["address"]="廣東"

a.pop("age")

print(a)  结果 {'sex': '男', 'address': '廣東', 'name': '張三'}

字典嵌套

例如

a={"age":18,"name":"張三","address":"上海","info":{"name":"李四","age":20,"add":"浙江","score":100}}

a_1=a['info']['score']

print(a_1) 结果100

注:key的值时唯一的,value可以不唯一

例子

a={"age":18,"name":"張三","address":"上海","name":"王五"}

print(a)  结果{'name': '王五', 'age': 18, 'address': '上海'}  张三被覆盖

a={"age":18,"name":"張三","address":"上海","name2":"張三"}

print(a) 结果{'name': '張三', 'name2': '張三', 'address': '上海', 'age': 18}