python学习 day7_字符串、列表的相关操作
python学习day7_字符串的相关函数
- 字符串的相关操作
- (1)字符串的拼接 +
- (2)字符串的重复 *
- (3)字符串跨行拼接 \
- (4)字符串的索引(复习)
- (5)字符串的切片:(截取)
- 对字符串宝具
- capitalize 使字符串首字母大写
- title 使每个单词的首字母大写
- upper 使所有字母变成大写
- lower 使所有字母变成小写
- swapcase 使字母大小写互换
- len 计算并输出字符串的长度
- count 统计字符串中某个元素的数量
- find 查找某个字符串第一次出现的索引位置
- index 与 find 功能相同
- startswith 判断是否以某个字符或字符串为开头
- endswith 判断是否以某个字符或字符串结尾
- is 系列判断函数
- isupper 判断字符串是否都是大写字母
- islower 判断字符串是否都是小写字母
- isdecimal 检测字符串是否以数字组成 必须是纯数字
- split join strip replace (重点语法)
- 【重点】split 按某字符将字符串分割成列表(默认字符是空格)
- 【重点】join 按某字符将列表拼接成字符串(容器类型都可),容器中元素必须都是str
- center 填充字符串,原字符居中 (默认填充空格)
- 【重点】strip 去掉首尾两边的字符(默认为去掉空白符,如空格,/n之类)
- 【重点】replace 把字符串的旧字符换成新字符
- format 格式化字符串
- (1)顺序传参
- (2)索引传参
- (3)关键字传参
- (4)容器类型数据(列表或元组)传参
- (5)format的填充符号的使用( ^ > < )
- (6)进制转换等特殊符号的使用
- :d 整型占位符 (要求必须是整型)
- :2d 占用2位,默认原字符串居右
- :f 浮点型占位符 (要求必须是浮点型,默认保留小数点后6位)
- :.2f 保留二位小数,存在四舍五入的情况
- {: s} 字符串占位符 (要求必须是字符串)
- {:,} 金钱占位符
- 综合案例
- 了解即可的操作
- 1、center,ljust,rjust,zfill
- 2、expandtabs:把字符串中的\t转为空格,一个\t默认转换的空格数是 8
- 3、is数字系列,isdigit,isdecimal,isnumeric
- isdigit的试验:bytes,unicode
- isdecimal的试验:uncicode
- isnumberic:unicode,中文数字,罗马数字
- 4、is其他:isalnum,isalpha,isidentifier,isspace,istitle
- 列表相关操作
- 一.列表的拼接 (同元组) +
- 二.列表的重复 (同元组) *
- 三.列表的切片 (同元组)
- (1)[开始索引:] 从开始索引截取到列表的最后
- (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
- (3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
- (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
- (5)[:]或[::] 截取所有列表
- 四.列表的获取 ( 同元组 )(复习)
- 五.列表的修改 ( 可切片 )(复习)
- 六.列表的删除 ( 可切片 )
字符串的相关操作
(1)字符串的拼接 +
str1 = "美丽的"
str2 = "大好河山"
res = str1 + str2
print(res) # '美丽的大好河山'
(2)字符串的重复 *
str1 = "重要的事情说三遍"
res = str1 * 3
print(res) # '重要的事情说三遍重要的事情说三遍重要的事情说三遍'
(3)字符串跨行拼接 \
str1 = "sdfsdffsdfsfsfdfsdfsfdff" \
"45245324534523"
print(str1) # 'sdfsdffsdfsfsfdfsdfsfdff45245324534523'
(4)字符串的索引(复习)
# 0 1 2
strvar = "好天气"#-3 -2 -1
print(strvar[-1]) # '气'
(5)字符串的切片:(截取)
- 语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到字符串的最后(默认为0)
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)(默认到末尾)
(3)[开始索引 结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引 结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
(5)[:]或[::] 截取所有字符串
(6)[间隔值] 正向或反向的步长 (默认为1)
(7)字符串切片数值用引号隔开,而range用的是逗号隔开。
首先我们定义一个字符串strvar:
strvar = "我爱你亲爱的姑娘,见到你,我就心慌"
(1)[开始索引:] 从开始索引截取到字符串的最后
res = strvar[3:] # 截取全部
print(res) # '亲爱的姑娘,见到你,我就心慌'
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res = strvar[:5] # 截取索引0~4的字符串
print(res) # '我爱你亲爱'
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = strvar[9:12] # 截取索引9~11的字符串
print(res) # 见到你
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
# 0 3 6 9 12 15 .... 我 亲 姑 见 , 心
# 正向截取
res = strvar[::3] # 从头到尾截取步长为3的字符串并拼接
print(res) # '我亲姑见,心'
# 逆向截取
# -1 -2 -3 -4 ...
res = strvar[::-1] # 从尾到头截取步长为1的字符串并拼接
print(res) # '慌心就我,你到见,娘姑的爱亲你爱我'
(5)[:]或[::] 截取所有字符串
res = strvar[:] # 截取全部
print(res)
对字符串宝具
capitalize 使字符串首字母大写
strvar = "how old are you"
res = strvar.capitalize()
print(res)
title 使每个单词的首字母大写
res =strvar.title()
print(res)
upper 使所有字母变成大写
res = strvar.upper()
print(res)
lower 使所有字母变成小写
strvar = "HOW OLD ARE YOU"
res = strvar.lower()
print(res)
swapcase 使字母大小写互换
strvar = "AbC d"
res = strvar.swapcase()
print(res)
len 计算并输出字符串的长度
strvar = "AbC d"
res = len(strvar)
print(res)
count 统计字符串中某个元素的数量
- 可以通过起始值跟结束值选取切片:count(’’,start,end)
strvar = "你猜我是不是喜欢你"
res = strvar.count("是")
print(res)
find 查找某个字符串第一次出现的索引位置
- 格式:.find(字符,start,end)
注意:end最大值取不到, 取到它之前的那个数,严格区分大小写
strvar = "oh Father this is my Favorate boy"
res = strvar.find("f") # -1
res = strvar.find("Fav") # 21
res = strvar.find("is",13) # 15
res = strvar.find("is",13,16) # -1
print(res)
index 与 find 功能相同
- find找不到返回-1,index找不到数据直接报错
startswith 判断是否以某个字符或字符串为开头
- 格式:startswith(字符,start,end)
strvar = "oh Father this is my Favorate boy"
res = strvar.startswith("oh") # True
res = strvar.startswith("oh",3) # False
print(res)
endswith 判断是否以某个字符或字符串结尾
格式与startswith相同。
strvar = "oh Father this is my Favorate boy"
res = strvar.endswith("boy") # True
res = strvar.endswith("Favorate",-12,-4) # True
print(res)
is 系列判断函数
isupper 判断字符串是否都是大写字母
res = strvar.isupper("ABC")
print(res)
islower 判断字符串是否都是小写字母
res = strvar.islower("ABC")
print(res)
isdecimal 检测字符串是否以数字组成 必须是纯数字
res = strvar.isdecimal("1234123")
print(res)
split join strip replace (重点语法)
【重点】split 按某字符将字符串分割成列表(默认字符是空格)
strvar = "you can you up no can no bb"
lst = strvar.split() # ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
strvar = "you-can-you-up-no-can-no-bb"
lst = strvar.split("-") # ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
- 可以选择分割几次(从左向右)
strvar = "you can you up no can no bb"
lst = strvar.split("-",2) # 只分割两次 ['you', 'can', 'you-up-no-can-no-bb']
# 选择从右向左分割 rsplit
lst = strvar.rsplit("-",2) # ['you-can-you-up-no-can', 'no', 'bb']
print(lst)
【重点】join 按某字符将列表拼接成字符串(容器类型都可),容器中元素必须都是str
lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
strvar = "&".join(lst)
print(strvar) # 'you&can&you&up&no&can&no&bb'
center 填充字符串,原字符居中 (默认填充空格)
- 语法效果:填充字符串的长度 + 居中的原字符串长度 = 括号内数值
默认填充空格:
strvar = "尉翼麟" # " 尉翼麟 "
res = strvar.center(10)
指定字符填充:
strvar = "尉翼麟"
res = strvar.center(10,"*")
print(res) # ***尉翼麟****
【重点】strip 去掉首尾两边的字符(默认为去掉空白符,如空格,/n之类)
strvar = " xboyww "
res = strvar.strip()
print(res) # "xboyww" # 默认去掉了两边的空格strvar = "@@@xboyww@"
res = strvar.strip("@")
print(res) # "xboyww" # 去掉了指定的字符'@'
【重点】replace 把字符串的旧字符换成新字符
strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有") # "可爱的小狼狗喜欢吃肉,真没有,真没有,还真没有"
可以选择替换的次数:
strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有",1) # 只替换一次,从第一个开始
print(res) # 可爱的小狼狗喜欢吃肉,真没有,有没有,还有没有
案例:替换掉字符串所有的空格:
strvar = "a b c"
res = strvar.replace(" ","")
print(res) # "abc"
format 格式化字符串
- 在format中,{} 代表占位符。
(1)顺序传参
(2)索引传参
(3)关键字传参
(4)容器类型数据(列表或元祖)传参
(1)顺序传参
strvar = "{}向{}开了一枪,银弹而亡"
res = strvar.format("黄俊","刘伟")
print(res)
(2)索引传参
strvar = "{1}给{0}一个大大的拥抱" # 给入的索引为format括号内数值的索引
res = strvar.format("魏富强","李天兆")
print(res) # '李天兆给魏富强一个大大的拥抱'
(3)关键字传参
- 注意这里字符串是使用的等号来赋予给关键字,而不是引号
strvar = "{who2}向{who1}发起猛攻,进行扫射,嘴里大喊: 丫子给给~"
res = strvar.format(who1="黎建忠",who2="刘敏") # 类似将format里的参数字典化
print(res)
(4)容器类型数据(列表或元组)传参
方法一:
strvar = "{0[0]}向{1[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( ["刘思敏","陈芮"] , ("黄俊","朱佳怡"))
print(res)
方法二:
- 注意这里容器也是使用的等号来赋予给关键字
strvar = "{woman[1]}向{man[1]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = ["刘思敏","陈芮"] , man = ("黄俊","朱佳怡"))
print(res)
方法三:
- 注意在format当中,字典的键输入字符串中时,不要加上引号
strvar = "{woman[sm]}向{man[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = {"cr":"陈芮","sm":"刘思敏"} , man = ("黄俊","朱佳怡"))
print(res)
(5)format的填充符号的使用( ^ > < )
- ^ 原字符串居中
> 原字符串居右
< 原字符串居左
格式示例:{'原字符串':=<10}
- = : 要填充的字符
^ : 填充的方向,原字符串居中。
10 : 字符串的总长度为10。
总长度10 = 原字符串长度 + 填充字符的长度。
空格,汉字也不用包裹引号。
strvar = "{who:你^10}在长春长生公司{do:@>10},感觉{feel:!<10}"
res = strvar.format(who="魏富强",do="扎疫苗",feel="血巢被掏空")
print(res) # 你你你魏富强你你你你在长春长生公司@@@@@@@扎疫苗,感觉血巢被掏空!!!!!
(6)进制转换等特殊符号的使用
{:d} , {:f} , {:s} , {:,}
:d 整型占位符 (要求必须是整型)
strvar = "{:d}月{:d}号,是母亲节"
# res = strvar.format(5.9,10.8) # 输入浮点型会报错
res = strvar.format(5,10) # {:d}必须对应输入的是整形
print(res) # 5月10号,是母亲节
:2d 占用2位,默认原字符串居右
strvar = "母亲节,给自己的老妈,买了{:2d}个康乃馨"
res = strvar.format(1) # 占用两位,默认居右
print(res)strvar = "母亲节,给自己的老妈,买了{:<2d}个康乃馨"
res = strvar.format(1)
print(res) # 占用两位,使用<,居左strvar = "母亲节,给自己的老妈,买了{:^3d}个康乃馨"
res = strvar.format(1)
print(res) # 占用两位,使用^,居中
:f 浮点型占位符 (要求必须是浮点型,默认保留小数点后6位)
strvar = "买花一共花了{:f}元"
res = strvar.format(9.9)
print(res) # 买花一共花了9.900000元
:.2f 保留二位小数,存在四舍五入的情况
strvar = "王振开工资了,一个月{:.2f}元"
res = strvar.format(98.319)
print(res)
{: s} 字符串占位符 (要求必须是字符串)
strvar = "{:s}"
res = strvar.format("中国疫情正在渐渐的变好,但是美国的疫情一天不如一天")
print(res)
{:,} 金钱占位符
strvar = "{:,}"
res = strvar.format(123456789)
print(res)
综合案例
strvar = "{:s}看好了一辆兰博基尼,价格是{:.1f}元,打算买{:d}个"
res = strvar.format("杨浩",9.9,10)
print(res)
了解即可的操作
1、center,ljust,rjust,zfill
print("egon".center(50,'*')) # 总共50个字符,egon居中,剩余两侧全为*
print("egon".ljust(50,'*')) # 总共50个字符,egon居左,剩余右侧全为*
print("egon".rjust(50,'*')) # 总共50个字符,egon居右,剩余左侧全为*
print("egon".zfill(50)) # 总共50个字符,egon居右,剩余左侧全为0
2、expandtabs:把字符串中的\t转为空格,一个\t默认转换的空格数是 8
tabsize – 指定转换字符串中的 tab 符号(’\t’)转为空格的字符数。
str.expandtabs(tabsize=8)
3、is数字系列,isdigit,isdecimal,isnumeric
- 三者不能判断浮点数
在python3中,我们先命名以下四种不同的数据
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字
isdigit():用于b和u格式,即num1和num2
isdecimal():用于u格式,即num2
isnumberic():用于u,中文数字、罗马数字,即num2、num3、num4
isdigit的试验:bytes,unicode
print(num1.isdigit()) #True
print(num2.isdigit()) #True
print(num3.isdigit()) #False
print(num4.isdigit()) #False
isdecimal的试验:uncicode
# bytes类型无isdecimal方法
print(num2.isdecimal()) #True
print(num3.isdecimal()) #False
print(num4.isdecimal()) #False
isnumberic:unicode,中文数字,罗马数字
bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True
4、is其他:isalnum,isalpha,isidentifier,isspace,istitle
name='egon123'
print(name.isalnum()) #判断字符串是否由字母或数字组成
print(name.isalpha()) #判断字符串是否只由字母组成name="123a" # False 首字母不能为数字
print(name.isidentifier()) #判断字符串是否为有效的标识符,可以用于判断变量名是否合法name=" "
print(name.isspace()) #判断字符串是否仅为空格组成name="My Name Is"
print(name.istitle()) #判断字符串是否每个字母大写
列表相关操作
一.列表的拼接 (同元组) +
lst1 = [1,2]
lst2 = [3,4]
lst = lst1 + lst2
print(lst)
二.列表的重复 (同元组) *
lst1 = [1,2]
lst = lst1 * 3
print(lst)
三.列表的切片 (同元组)
- 语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表
先定义一个变量lst用来试验:
lst = ["王颖倩","朱佳怡","云超","主胜","刘敏","王振","杨浩"]
(1)[开始索引:] 从开始索引截取到列表的最后
res = lst[2:]
print(res)
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
res = lst[:4]
print(res)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
res = lst[3:5] # 3 4
print(res)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
正向截取:
res = lst[::5] # 正向以5的步长截取
print(res)
逆向截取:
res = lst[::-1] # 反向以1的步长截取
print(res)
(5)[:]或[::] 截取所有列表
res = lst[:]
res = lst[::]
print(res)
四.列表的获取 ( 同元组 )(复习)
# 0 1 2
lst = ["a","b","c"]
# -3 -2 -1
print(lst[0])
五.列表的修改 ( 可切片 )(复习)
lst[0] = "ddd"
print(lst)
- 赋值时,修改的数据要求是: >可迭代性的数据< iterable
利用切片进行修改(切一段,放进去所有值)
- 带有步长的切片修改(切几个改几个),改多了就会报错
lst = ["王颖倩","朱佳怡","云超","主胜","刘敏","王振","杨浩"]
lst[1:3] = ["姜斌强","尉翼麟","aaa","bbb","cccc"]
# lst[1:3] = "1234" 如果输入的片段是字符串则会把每个字符都拆分后输入
print(lst)
六.列表的删除 ( 可切片 )
lst = ["猪八戒","唐僧","孙悟空","沙僧","白龙马"]
# 删除单个
'''
del lst[0]
print(lst)
'''
# 删除一段 (通过切片删除)
del lst[1:4]
print(lst)
python学习 day7_字符串、列表的相关操作相关推荐
- python基础===【字符串】所有相关操作
#字符串的相关操作#基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result)# ...
- Python学习笔记——字符串、列表、元组、字典
字符串介绍 想一想: 当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密 ...
- python列表使用技巧与方法_Python列表的相关操作与方法
Python列表的相关操作与方法 1.列表 why:int.bool.str存在缺陷 str:存储少量的数据:所有的操作获取的内容都是 str类型,存储的数据类型单一. what: 列表可以承载任意数 ...
- python小白——进阶之路——day天-———列表的相关操作以及函数
###列表的相关操作 #(1)列表的拼接lst1=[1,2] lst2=[3,4] listvar = lst1+lst2 print(listvar) #(2)列表的重复lst = [1,2,3] ...
- 20230209 Python的列表及相关操作
一.认识列表 案例:定义变量保存一个班所有学生的分数 scores = [33, 44, 90, 100, 77, 82, 0, 93, 99, 94] 求平均分 print(sum(scores) ...
- Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合
笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合
Python学习中的笔记--集合相关,python笔记--集合 集合的基本操作 一.可修改的集合set 创建集合 var = set() var = {'a','b','c','d'} 成员检测 va ...
- python学习笔记四-列表
list列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表是最常用的Python数据类型,它可以作为一个 ...
最新文章
- Linux下使用ssh动态验证码登陆机器
- 最新开源!TransReID:首个基于Transformer的ReID网络,各项任务全面领先!
- 自动转换开关(ATS)在数据中心配电系统中的应用
- 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
- chapter16 计算机体系结构基础
- block,inline,inline-block的区别
- 蓝桥杯历届试题----矩阵翻硬币
- 调制的缺点_DML、EAM与MZI调制的比较
- C语言各类位操作用法
- 昨天,JetBrains 推出“下一代 IDE”,对标VS Code?快看看有哪些值得期待的功能!...
- tomcat设置context不生效_后端服务:关于Tomcat相关面试题,看懂这篇就够了(有深度)...
- java excel 2007兼容包_Office 2007兼容包官方下载_2007 Office system 兼容包免费版下载-华军软件园...
- 【PPT在插入excel对象时报错】
- 2021电赛F题智能送药小车程序代码
- 年薪80万难觅技术人才 杭州区块链人才需求旺盛
- Matlab-syms用法
- 大数据之Javase
- 电子人的浪漫--致爱丽丝音乐盒
- Hive的面试题总结
- 电脑没有鼠标怎么打开计算机,电脑鼠标右键菜单没有打开方式选项怎么办