ITdage 发表于 2022-7-18 22:03:34

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]
查看完整版本: python字符串、列表方法及函数