【字符串-列表-元组相关函数和方法】
列表相关操作
(1)列表的拼接 (同元组)
(2)列表的重复 (同元组)
(3)列表的切片 (同元组)
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表
(4)列表的获取 (同元组)
(5)列表的修改 ( 可切片 )
(6)列表的删除 ( 可切片 )
列表的相关函数
append()
功能:向列表的末尾添加新的元素
格式:列表.append(值)
返回值:None
注意:新添加的值在列表的末尾,该函数直接操作原有列表
insert()
功能:在指定索引之前插入元素
格式:列表.insert(索引,值)
返回值:None
注意:直接改变原有列表
extend()
功能:迭代追加所有元素
格式:列表.extend(可迭代性数据)
返回值:None
注意:直接改变原有列表
pop()
功能:通过指定索引删除元素,若没有索引移除最后那个
格式:列表.pop(索引)
返回值:删除的元素
(注意:没有指定索引,默认移除最后一个元素 )
remove()
功能:通过给予的值来删除,如果多个相同元素,默认删除第一个
格式:列表.remove(值)
返回值:无
(注意:如果有索引的情况推荐使用pop,效率高于remove)
clear()
功能:清空列表
格式:列表.clear()
返回值:空列表
index()
功能:获取某个值在列表中的索引
格式:列表.index(值[,start][,end]) # [] 表达参数可选项
返回值:找到返回索引 (找不到报错)
count()
功能:计算某个元素出现的次数
格式:列表.count(值)
返回值:次数
sort()
功能:列表排序(默认小到大排序)
格式:列表.sort(reverse=False)
返回值:None
注意:直接更改原列表
reverse()
功能:列表反转操作
格式:列表.reverse()
返回值:None
注意:直接更改原列表
深拷贝浅拷贝
#copy模块中有 浅拷贝 和 深拷贝 两种方法
(1)浅拷贝: 浅拷贝只拷贝外层列表 内层列表跟随原列表进行改变
# 浅拷贝copy.copy(listvar) 或者 listvar.copy()
(2)深拷贝: 拷贝整个列表 内外列表都不跟随原列表进行改变
# 深拷贝copy.deepcopy(listvar)
注意:copy模块的copy方法 和 python内置的函数copy一样 都是浅拷贝
元组相关操作和方法
元组的相关操作除了不能修改和删除其中的元素之外 , 剩下操作都和列表相同.
元组里面能用的方法只有 index 和 count
#列表的相关操作同(字符串,元组)
# 列表的拼接+,列表的重复*,列表的切片[:::][开始索引:结束索引:间隔值],列表的获取,删除,修改
lst1=["a","b","c"]
lst2=["d","e","f"]
print(lst1+lst2)#['a', 'b', 'c', 'd', 'e', 'f']
lst1=["abc","def"]
print(lst1*3)#['abc', 'def', 'abc', 'def', 'abc', 'def']
"""
语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]
(1)[开始索引:] 从开始索引截取到列表的最后
(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
(5)[:]或[::] 截取所有列表
"""
lst=["张","王","(1,2,3)","马","李",{"name":"小马"}]
res=lst[:]
print(res)#['张', '王', '(1,2,3)', '马', '李', {'name': '小马'}]
res=lst[:2]
print(res)#['张', '王']
res=lst[1:4:2]
print(res)
res=lst[-1:-6:-2]
print(res)#[{'name': '小马'}, '马', '王']
res=lst[::-1]
print(res)#[{'name': '小马'}, '李', '马', '(1,2,3)', '王', '张']
#format格式化字符串(1顺序传参,2,索引传参,3,关键字传参,4,容器类型(列表,元组,字典传参))
str="{}年真的是特别{}的一年"
res=str.format(2020,"糟心")
print(res)#2020年真的是特别糟心的一年
str="特别{1}的一年{0}年真的是"
res=str.format(2020,"糟心")
print(res)#特别糟心的一年2020年真的是
str='2010年{who}向{who1}借了{money}块钱,一直没换'
res=str.format(who='什么龙',who1="小马",money=300)
print(res)#2010年什么龙向小马借了300块钱,一直没换
#容器类型传参
str='2010年{0[1]}向{1[0]}借了{2[0]}块钱,一直没换'
res=str.format(["什么龙","什么伟"],("小马","兔子"),("500",))
print(res)#2010年什么伟向小马借了500块钱,一直没换
#方法二
str='2010年{name[1]}向{username[0]}借了{money[0]}块钱,一直没换'
res=str.format(name=["什么龙","什么伟"],username=("小马","兔子"),money=("500",))
print(res)
# 方法三 (字典 在format当中,不要加上引号)
strvar = "{woman[sm]}向{man[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = {"cr":"陈芮","sm":"刘思敏"} , man = ("黄俊","朱佳怡"))
print(res)
###format的填充符号的使用(^,>,<):(原字符串居中,原字符串居右,原字符串居左)({who:!<10})
strvar="{who:*^10}在北京的书生公司上班,职位为{company:&<10},干了{many:?>9}年了,准备养老了"
res=strvar.format(who="小亮",company="测试工程师",many="13")
print(res)#****小亮****在北京的书生公司上班,职位为测试工程师&&&&&,干了???????13年了,准备养老了
###进制转换等特殊符号的使用(:d,:s,:f :,)
strvar="{:s}看上了一辆SUV,打算买{:<5d}台,需要{:.2f}万元,银行卡里还剩下{:,}元"
res=strvar.format("欣欣",10,9.9,1000000)
print(res)
#字符串相关函数
# capitalize,title,upper,lower,swapcase,len,count,find,index,starswith,endswith,is 为系列函数
strvar="what is you Name"
res=strvar.capitalize()
res1=strvar.title()
res2=strvar.upper()
res3=strvar.swapcase()
res4=len(strvar)
#统计某个字符串中某个元素的数量
res5=strvar.count("a")
print(res,res1,res2,res3,res4)
print(res5)
#find查找某个字符串第一次出现的索引位置find(字符,start,end)
#index 和find功能相同,找不到直接报错
strvar="my dad is 66 years old,but,my dad looks very young"
res=strvar.find("my",2,20)
print(res)
#startswith endswith判断是否以某个字符或者字符串为开头或则结尾,返回TrueorFasle,endswith(字符,start,with)
strvar="my dad is 66 years old,but,my dad looks very young"
res=strvar.startswith("my")
print(res)
#is系列函数,isdecimal是否是纯数字
strvar="Today Is Moday"
res=strvar.isupper()
print(res)
strvar="today is monday"
res=strvar.islower()
print(res)
strvar="1122222"
res=strvar.isdecimal()
print(res)
####split,join ,strip,replace
#split#按某字符将字符串分割成列表,(默认字符时空格)
strvar="今^&天心情很不爽,被商家欺骗了"
strvar1="11111"
res=strvar.split("&")
print(res)#['今^', '天心情很不爽,被商家欺骗了']
strvar="你 今 天太棒 了"
#可以选择分割几次,从左向右
res=strvar.split(" ",2)
print(res)#['你', '今', '天太棒 了']
#join按照某个字符将列表拼接成字符串(容器类型都可以)
lst1=["每天都要好心情"]
lst2=["你说对吗","老铁"]
print("****".join(lst2))#你说对吗****老铁
##center填充字符串,原字符串居中(默认填充空格),strip默认去掉首尾两边的空格,replace默认把字符
# 串中的旧字符换成新字符
v1="很爱很爱你"
res=v1.center(20)
print(res)
#replace("旧的","新的")
strvar = "a b c"
res = strvar.replace(" ","")
print(res)