python 字符串方法及列表,元组,字典(一)
字符串 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内置函数的调用
例子 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) ??结果[email?protected] [email?protected] 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,3]] s.append("ok") print(s) 结果[20,‘hello‘,3],‘ok‘] 2、列表名.insert(指定索引值的位置,value)把value插入到指定的位置 s=[20,3]] s.insert(1,"ok") print(s) ?结果[20,‘ok‘,3]] 3、extend 扩张列表 s=[20,3]] s1=["合理",12,"world"] s.extend(s1) print(s) 结果[20,‘合理‘,‘world‘] 删除元素 1、删除最后一个元素,列表名.pop() s=[20,3]] s.pop() print(s) 结果 [20,2.0] 2、指定删除元素 列表名.pop(指定的索引位置) s=[20,3]] s.pop(1) print(s) 结果 [20,3]] 3、删除所有元素 列表名.clear() s=[20,3]] s.clear() print(s) 结果[] 4、修改元素 修改列表里面元素的value 列表名[指定索引]=新值 修改指定的索引值 s=[20,3]] s[1]=2019 print(s) 结果[20,2019,3]] 四、元组 关键字 tuple 标志() t=() 空元组 特点 1、标志是()关键字tuple 2、元组里面可以放任何类型的数据,元素与元素之间用逗号隔开 3、元组里面的元素也都有索引从0开始跟字符串的索引方式是一致的 4、元组取值方式:元组名[索引值]正序 反序 5、切片:元组名[m:n:k]和字符串一样的操作 注: ①与列表的区别: 1、标志不同 2、元组的值不能进行任何的增删改操作,可以修改元组内部的数据但是不能改外部的数据 例如 第一种 s=(1,"hell0",(1,3)) s[3]=6666 print(s) 结果 报错TypeError: ‘tuple‘ object does not support item assignment ? s=(1,3)) s[3][2]=6666 print(s) 结果(1,‘hell0‘,6666],3)) 第二种 s=[1,3)] s[4]=6666 print(s) 结果[1,6666] ? s=[1,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,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,"address":"上海"} a["sex"]="男" a["address"]="廣東" a.pop("age") print(a) ?结果 {‘sex‘: ‘男‘,‘address‘: ‘廣東‘,‘name‘: ‘張三‘} 字典嵌套 例如 a={"age":18,"address":"上海","info":{"name":"李四","age":20,"add":"浙江","score":100}} a_1=a[‘info‘][‘score‘] print(a_1) 结果100 注:key的值时唯一的,value可以不唯一 例子 a={"age":18,"name":"王五"} print(a) ?结果{‘name‘: ‘王五‘,‘age‘: 18,‘address‘: ‘上海‘} ?张三被覆盖 ? a={"age":18,"name2":"張三"} print(a) 结果{‘name‘: ‘張三‘,‘name2‘: ‘張三‘,‘address‘: ‘上海‘,‘age‘: 18} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |