python字符串、列表方法及函数
本帖最后由 ITdage 于 2022-7-18 22:08 编辑'''python中的索引
通过索引取序列(字符串str,列表list,元祖tuple)
索引分为:
正向索引:从0开始从左到右
负向索引:从-1开始从右到左
索引的使用格式为str1
'''
str1 = 'xian05' #可以通过索引的方式取字符串中的字符
# print(str1) #x
# print(str1[-1]) #5
# print(str1) #IndexError: string index out of range索引越界
#python中的切片
'''
1.切片是建立在索引的基础上
2.切片的表达式str1=>[开始索引:结束索引:步长]
3.索引取值开始索引到结束索引的前一位(能取开始索引,不能取结束索引)
4.如果没有传入步长,则步长默认为1(正步长)
正步长:取值从左到右
不传入开始索引,则开始索引默认从0开始
不传入结束索引,则取值从开始索引到序列最后一个值
负步长:取值从右到左
不传入开始索引,则默认开始索引为-1
不传入结束索引,则从开始索引按照从右到左,取到最左端
'''
# str1 = 'duoceshi'
# print(str1) #duoce
# print(str1[:6]) #duoces
# print(str1) #ceshi
# print(str1[-2:]) #hi给一个字符串,取字符串最后两位怎么取
# print(str1) #duoceshi切片中没有索引越界的error
# print(str1) #没有内容
# print(str1[:]) #duoceshi既不传入开始索引也不传入结束索引,取值序列全部正步长
# print(str1[-6:-2]) #oces
'''--------------------------------'''
# str1 = 'duoceshi'
# print(str1) #结果为空
# print(str1) #hseco
# print(str1[:4:-1]) #ihs开始索引为空时默认取值-1
# print(str1) #ecoud
# print(str1[::-1]) #ihsecoud进行序列反转
# print(str1[-2:-6:-1]) #hsec
#步长为2的时候(跳切)
# str1 = 'duoceshi'
# print(str1) #ucs
#==========python中的字符串==========================================
#字符串的定义 str1 = ’xiaozhang‘
#str1 = 'xiaozhang'
#1.capitalize():首字母大写
# print(str1.capitalize()) #Xiao zhang
# #2.title():标题化字符串
# print(str1.title()) #Xiao Zhang
# print(str1.title()) #Xiaozhang
# #3.count('str'):统计指定字符出现的次数
# print(str1.count('a'))
# #4.'char'.join(str):按序列中字符按自定义的分隔符链接在一起
# print('_'.join(str1)) #x_i_a_o_ _z_h_a_n_g
# print('~'.join(str1)) #x~i~a~o~ ~z~h~a~n~g
# print('1'.join(str1)) #x1i1a1o1 1z1h1a1n1g
#5.split():把字符串通过指定标识符分割
#分割完后得到结果的数据类型是列表list
# print(str1.split(' '))
# list1 = str1.split(' ')
# print(list1) #['xiao', 'zhang']
# print(type(list1)) #<class 'list'>
# print(list1) #xiao
'''练习
把字符串’user_name‘输出成’UserName‘
'''
# str1 = 'user_name'
# list1 = str1.title().split('_')
# print(list1)
# print(list1+list1) #UserName
# print(''.join(list1)) #UserName
#6.strip('ab')删除字符串开头和结尾有a货b的字符
# str1 = 'duoceshiud'
# print(str1.strip('du')) #oceshi
# print(str1.strip('ud')) #oceshi
# print(str1.strip('u')) #duoceshiud
#7.lstrip('ab')删除字符串开头有a或b开头的字符
# str1 = 'duoceshiud'
# print(str1.lstrip('du')) #oceshiud
# print(str1.lstrip('ud')) #oceshiud
# print(str1.lstrip('u')) #duoceshiud
# #8.rstrip('ab')删除字符串开头有a或b开头的字符
# str1 = 'duoceshiud'
# print(str1.rstrip('du')) #duoceshi
# print(str1.rstrip('ud')) #duoceshi
# print(str1.rstrip('u')) #duoceshiud
#9.startswith()判断字符串是否以什么开始=>返回布尔值
# str1 = 'duoceshiud'
# print(str1.startswith('du')) #True
# print(str1.startswith('ud')) #False
#10.endswith()判断字符串是否以什么结束
# str1 = 'duoceshiud'
# print(str1.endswith('ud'))#True
# print(str1.endswith('du'))#False
''''''
# file_name = input("请输入您需要上传的文件名称")
# if file_name.endswith('py'):
# print("文件有效")
# else:
# print("文件无效")
#11.find('a')字符串查询,左边开始查,结果显示下标
#可以在find()函数中加入参数开始索引与结束索引来限制查找的字符的范围
# str1 = 'xiaozahang'
# print(str1.find('a')) #2
# print(str1.find('a',3)) #5
# print(str1.find('a',6,8)) #7
#12.rfind('a')字符串查询,右边开始查,结果显示下标
# str1 = 'xiaozahang'
# print(str1.rfind('a'))#7
#13.replace('substring','newstring',max)
#substring:表示被替换的字符串
#newstring:表示要替换的字符串
#max:表示替换的次数
# str1 = 'xiaozhang'
# print(str1.replace('a','e')) #xieozheng如果没有申明替换次数则全部替换
# print(str1.replace('a','e',1)) #xieozhang
# print(str1.replace('a','')) #xiozhng使用空格替换相当于被替换字符被删除
#14.lower()把字符串中所有大写字符替换为小写
# str1 = 'XIAOzhang'
# print(str1.lower()) #xiaozhang
# #15.upper()把字符串中所有小写字符替换为大写
# print(str1.upper()) #XIAOZHANG
#16.isdigit()判断字符串中是否全为数字
#给你一个字符串,你怎么去判断这个字符串是不是一个ip地址?
# str1 = '192.168.1.1'
# str2 = '123456'
# print(str1.isdigit()) #False
# print(str2.isdigit()) #True
#17.isalpha()判断字符串中是否全部为字母
# str1 = 'qwer'
# str2 = 'qw23er'
# print(str1.isalpha()) #True
# print(str2.isalpha()) #False
#18.isalnom()判断字符串中是否全部为数字,全部为字母或者数字字母组合
#判断字符串中是否包含特殊字符(@#¥)
# str1 = '1234'
# str2 = 'qwer'
# str3 = '12we4'
# str4 = 'zhong国'
# print(str1.isalnum()) #True
# print(str2.isalnum()) #True
# print(str3.isalnum()) #True
# print(str4.isalnum()) #True
#19.istitle()判断字符串中首字母是否为大写,其它是否为小写,其它不为小写则为否
# str1 = 'Xiaozhang'
# print(str1.istitle()) #True
# str2 = 'XiaoZhang'
# print(str2.istitle()) #False
# str3 = 'Xiao Zhang'
# print(str3.istitle()) #True
# str4 = 'XiaoZhang'
# print(str4.istitle()) #False
#20.isupper()is开头是判断一个字符串是否全部都是大写字符
# str1 = 'QWER'
# print(str1.isupper()) #True
# #21.islower()判断一个字符串是否全部为小写
# str2 = 'qwer'
# print(str2.islower()) #True
#================python中的列表list============================================
'''
列表是一个容器,可以包含任何类型的数据,列表是一个有序序列=>可以使用下标
列表用list表示
定义一个列表list1 = [],列表函数list()
'''
#1.定义列表的第一种方式
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# print(type(list1))#<class 'list'>
#3.使用列表函数list()转换
# str1 = 'xian05'
# list1 = list(str1)
# print(list1) #['x', 'i', 'a', 'n', '0', '5']
# print(str(list1)) #"['x', 'i', 'a', 'n', '0', '5']"--->字符串
# print(''.join(list1)) #xian05
#列表中常用的函数与方法
#列表使用索引赋值
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# list1 = 'hello'#把0索引位置的值dcs改成了hello
# print(list1) #['hello', 'xian05', 10086, ['xiao', 'zhang']]
# list1= 'world'
# print(list1) #['w', 'o', 'r', 'l', 'd', 10086, ['xiao', 'zhang']]一般不用
#1.append()函数,给列表末尾追加元素
#可以添加任何数据类型的数据
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# list1.append('shuaige')
# print(list1) #['dcs', 'xian05', 10086, ['xiao', 'zhang'], 'SG']
# list1.append(['10000'])
# print(list1) #['dcs', 'xian05', 10086, ['xiao', 'zhang'], 'shuaige', ['10000']]
#2.insert(index,object)函数,根据索引位置去添加元素到列表中
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# list1.insert(1,'美女') #['dcs', '美女', 'xian05', 10086, ['xiao', 'zhang']]
# print(list1)
# list1.insert(1,10086)
# print(list1)
#3.extend(iterable)函数,链接两个列表,传入的值是可迭代的对象
# list1 = ['xian05']
# list2 = ['dcs']
# str1 = 'dcs'
# list1.extend(list2) #把list2列表的元素追加到list1中
# list2.extend(str1)
# print(list1) #['xian05', 'dcs']
# print(list2) #['dcs', 'd', 'c', 's']
#4.index('')函数,查看列表元素的索引值
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# print(list1.index(10086)) #2
# str1 = 'xian05'
# print(str1.index('a')) #2
#5.remove(obj)函数
# #如果出现相同元素只能删除第一个出现的
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# list1.remove('xian05')
# print(list1) #['dcs', 10086, ['xiao', 'zhang']]
# list1 = ['dcs','xian05','dcs',10086,['xiao','zhang']]
# list1.remove('dcs')
# print(list1) #['xian05', 'dcs', 10086, ['xiao', 'zhang']]
#6.使用关键字删除del ==>根据列表中索引进行删除
# list1 = ['dcs','xian05',10086,['xiao','zhang']]
# del list1
# print(list1) #['xian05', 10086, ['xiao', 'zhang']]
#7.sort()函数对列表进行排序 默认排序方式为升序
#只有当列表中元素全部为str或全部为int的时候才能进行排序
# list1 = ['dcs','test','china','10086',10010]
# list1.sort()
# print(list1) #报错
# list1 = ['dcs','test','china','10086','10010']
# list1.sort()
# print(list1) #['10010', '10086', 'china', 'dcs', 'test']
# list2 =
# list2.sort(reverse=False) #reverse=False排序方式为升序
# print(list2) #
# list2 =
# list2.sort(reverse=True) #reverse=True排序方式为降序
# print(list2) #
#8.sorted()函数进行排序
#对列表参数进行排序并且生成排序后的新列表
# list1 = ['dcs','test','china','10086','10010']
# list2 = sorted(list1)
# print(list1) #['dcs','test','china','10086','10010']
# print(list2) #['10010', '10086', 'china', 'dcs', 'test']
# list3 = sorted(list1,reverse=True)
# print(list3) #['test', 'dcs', 'china', '10086', '10010']
'''你知道python中排序吗?用哪些方法可以进行排序?区别?
相同点:两个函数都是默认升序
不同点:sort()是一个方法,sorted()是一个函数
sort()排序是针对原来的列表进行排序,不会生成新的列表
sorted()把原来列表中的元素进行排序生成一个新列表
'''
#reverse()函数,反转函数
# list1 = ['dcs','test','china','10086','10010']
# print(list1[::-1])
# list1.reverse()
# print(list1)
页:
[1]