一、Python中的索引
定义:我们可以直接使用索引来访问序列中的元素,同时索引可分为 正向和负向两种,而切片也会用到索引,下面放上一个图,有助于大 家理解正、负向索引的区别,如图所示:
D:\Program Files (x86)\weixinobU7Vjh_Jkx2XQxR5u4xEtsDvzCg\b972bdbba9304019b41b0166acb8bf4c\(]3tol69uqemeqzbbzwuv%1.jpg
Python中的序列,包括字符串(String)、列表(List)、元组(Tuple)
str1="asdfkl"
print(str1[2]) 返回结果 d
print(str1[-3]) 返回结果 f
二、Python中的切片
定义:切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持 切片操作。
切片的语法:[start_index : end_index : step] 解释说明:start_index表示起始索引 end_index表示结束索引 step表示步长,步长不能为0,且默认值为1
注意:切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引 (也就是结束索引减1)的所有元素。
Python中的切片实例
str='abcdefghjkl'
print (str[0:3]) 返回结果 abc
print (str[1:3]) 返回结果 bc
print (str[:-1]) 返回结果 abcdefghjk
print (str[2:-1]) 返回结果 cdefghjk
print (str[2:]) 返回结果 cdefghjkl
print (str[1:6:3]) 返回结果be
print (str[::1]) 返回结果abcdefghjkl
print (str[::-1]):反转输出面试题常遇 返回结果lkjhgfedcba
print (str[-2:-5:-1]) 返回结果kjh
三、Python中的字符串
防止字符串被转义的方法:
第一种(使用r处理):
str1 = r"D:\yxy\n\wuhan5"
print(str1)
输出结果:D:\yxy\n\wuhan5
第二种(使用/ \用反斜杠处理):
str1 = "D:\yxy/nnnnwuhan5"
print(str1)
输出结果:D:\yxy/nnnnwuhan5
第三种()
str1 = "D:\yxy\\nnnn\wuhan5"
print(str1)
输出结果:D:\yxy\nnnn\wuhan5
字符串常用函数:
1.capitalize():首字母大写
title():可以实现首字母大写的转换,但是如果字符串中包含空格或者下划线,会转换成驼峰格式
str1 = "hello word"
print(str1.capitalize()) #输出结果:Hello word
print(str1.title()) #输出结果:Hello Word
2.count():统计具体字符出现的次数
str1 ="hello word"
print(str1.count("l")) #输出结果:2
3.join():把集合中的字符按自定义的分隔符连接在一起
str1 = "aasdd"
str2 = "yyy"
print("-".join(str1)) #输出结果:a-a-s-d-d
print(str1 + str2) #输出结果:aasddyyy
4.split():把字符串通过指定标识符进行分割
str1 ="hello:word"
print(str1.split(":")) #输出结果返回的是一个list:['hello', 'word']
5.strip(ab):删除字符串开头和结尾有a或b的字符(默认删除空格)
如果字符开头和结尾有空格,指定删除的值,是无法删除的,因为开头和结尾是空格
str1 = " qwertyuio"
print(str1.strip()) # 默认删除空格 输出结果:qwertyuio
print(str1.strip("q")) #输出结果:wertyuio
print(str1.strip("qo")) #多个条件字符是或的关系,输出结果:wertyui
6.lstrip(ab):删除字符串开头有ab序列字符
str1 = " qwertyqio"
print(str1.lstrip()) #从左开始删除指定内容(默认删除空格) 输出结果:qwertyqio
print(str1.lstrip("q")) #输出结果:wertyqio
7.lstrip(ab):删除字符串开头有ab序列字符
print(str1.rstrip("o")) #从右开始删除指定内容(默认删除空格) 输出结果:qwertyqi
8.startswith():判断字符串是否以什么开始
一般应用在if条件语句进行判断使用
name = input("被压在五指山下的姓啥?")
if name.startswith("孙"):
print("正确")
else:
print("错误")
9.endswith():判断字符串是否以什么结束
一般判断上传的文件是以什么结尾的.png .txt .exe .xls
file = input("请上传你的文件")
if file.endswith(".txt") or file.endswith(".png"):
print("格式正确,上传成功")
else:
print("格式错误,请重新上传")
10.find()/rfind():字符串查询find()是左边开始查,rfind()从右边开始查,结果
显示下标
str1 ="1234567890"
print(str1.find("6"))
print(str1.rfind("6"))
11.replace():replace(substring,newstring,max) substring表示被替换的字
符串,newstring要替换字符串,max表示替换的次数
str1 ="wuhan-duoceshi"
print(str1.replace("wuhan","hubei")) #输出结果:hubei-duoceshi
str2 ="wuhan-wuhan-duoceshi"
print(str2.replace("wuhan","hubei",2)) #输出结果:hubei-hubei-duoceshi
12.lower():方法转换字符串中所有大写字符为小写
str1 ="ASDFGHJK"
print(str1.lower()) #输出结果:asdfghjk
13.upper():将字符串中的所有小写字符转换为大写字母输出
str1 ="asdffgvbGHJK"
print(str1.upper()) #输出结果:ASDFFGVBGHJK
14.isdigit():判断字符串中是否全为数字,真 返回TRUE,假返回FALSE
str1 ="345678"
print(str1.isdigit()) #输出结果:True
15.isalpha():判断字符串中是否全为字母,真 返回TRUE,假返回FALSE
str1 = "jksld23"
print(str1.isalpha()) #输出结果:False
16.isalnum():判断字符串当中是否全都为数字,全为字母,或者数字字母组合
返回布尔值:True和False ,如果有特殊符号就是否
str1 ="akjdsfh@"
print(str1.isalnum()) #输出结果:False
17.istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
str1 = "FDfdsgsr"
print(str1.istitle()) #输出结果:False
str2 = "Fsffdsgsr"
print(str2.istitle()) #输出结果:True
18.isupper()/islower():is开头的就是判断一个字符串是否展示为都是大写或者都是小写
isupper() 判断是否全部为大写
str1 = "FDfdsgsr"
str2 = "ADSRDTH"
print(str1.isupper()) #输出结果:False
print(str2.isupper()) #输出结果:True
islower()判断是否全部为小写
str1 = "FDfdsgsr"
str2 = "asdfsadf"
print(str1.islower()) #输出结果:False
print(str2.islower()) #输出结果:True
19.splitlines()将包含转义字符的内容进行分割,存放在一个list中
str1 ="sss\nddd\nkkk"
print(str1.splitlines()) #输出结果:['sss', 'ddd', 'kkk']
print(str1.splitlines(keepends= True)) #keepends= True 将转义字符不进行转换,keepends 默认值为false输出结果:['sss\n', 'ddd\n', 'kkk']
四、Python中的列表
定义:列表(list)是一组有序存储的数据,也是python常见的序列之一,序列 中的每个元素都分配一个索引,第一个元素索引是0,第二个元素索引是1,依此 类推。序列都可以进行的操作包括索引,切片,加,乘,检查成员
定义列表的两种方法:
方法一:list1 = [1,2,3,4] #直接通过[]进行定义
方法二:list2 = list('1234') #使用list()方法进行定义
列表中对应的函数
1.索引和切片赋值
list1 = ["aa","haha",2345,"安安","sdk","嘻嘻"]
print(type(list1)) #输出结果:<class 'list'>
print(list1[3]) #输出结果:安安
list中包含list
list1 = ["sss",1,[2,[3,[4,["叶安琪"],2],'s'],"黄鑫"],"雷浩然"]
print(list1[2][1][1][1][0]) #输出结果:叶安琪
list 中嵌套取值
list2 = ["刘德华",1,[2,"郭富城",[3,"黎明",["古天乐","张学友","周润发","渣渣辉"],"s"],"黄鑫"],"雷浩然"]
print(list2[2][2][2][1:3]) #输出结果:['张学友', '周润发']
list中切片操作
list1 = ["aa","haha",2345,"安安","sdk","嘻嘻"]
print(list1[1:4]) #输出结果:['haha', 2345, '安安']
字符串可以转换成list数据格式
str1 ="asdfwer"
print(list(str1)) #输出结果:['a', 's', 'd', 'f', 'w', 'e', 'r']
list重复输出
list1 =["aa",2,"渣渣"]
print(list1 * 3) #输出结果:['aa', 2, '渣渣', 'aa', 2, '渣渣', 'aa', 2, '渣渣']
2.append函数:添加一个元素
list1 =["古天乐","张学友","刘德华"]
list1.append("黎明")
print(list1) #输出结果:['古天乐', '张学友', '刘德华', '黎明']
通过索引替换当前索引位的值
list2 =["古天乐","张学友","刘德华"]
list2[0] = "黎明"
print(list2) #输出结果:['黎明', '张学友', '刘德华']
3.extend函数:连接两个列表
list1 = [111,222,333,444]
list2 = ["aaa","bbb","ccc"]
print(list1 + list2) #输出结果:[111, 222, 333, 444, 'aaa', 'bbb', 'ccc']
list1.extend(list2)
print(list1) #输出结果:[111, 222, 333, 444, 'aaa', 'bbb', 'ccc']
extend和字符串进行连接
1.list和str 使用extend进行拼接,如果字符串是多少字符,那么就添加多少个list值
2.print语句无法直接将list和str进行拼接
list1 = ["aaa","bbb","ccc"]
str1 ="jkf"
list1.extend(str1)
print(list1) #输出结果:['aaa', 'bbb', 'ccc', 'j', 'k', 'f']
注意:1.extend与append方法的相似之处在于都是将新接收到参数放置到已有列表的后面
2.append方法可以接收任意数据类型的参数,并且追加到list尾部
3.extend方法一般和列表还有字符串进行拼接。
4.insert(index,value)函数:在指定位置插入一条数据
list1 = ["aaa","bbb","ccc"]
list1.insert(2,"haha")
print(list1) #输出结果:['aaa', 'bbb', 'haha', 'ccc']
5.remove函数:移除元素(remove只能删除一个值,如果有多个值相同,默认删除最前面一个值)
方法1:
list1 = ["aaa","bbb","ccc"]
list1.remove("bbb")
print(list1) #输出结果:['aaa', 'ccc']
方法2:
list1 = ["aaa","bbb","ccc"]
list1.remove(list1[1])
print(list1) #输出结果:['aaa', 'ccc']
6.索引删除值
list1 = ['q','w','f',3,5,'j',8]
del list1[2]
print(list1) #输出结果:['q', 'w', 3, 5, 'j', 8]
切片删除
list1 = ['q','w','f',3,5,'j',8]
del list1[1:4]
print(list1) #输出结果:['q', 5, 'j', 8]
删除多个值
list1 = ['q','w','f',3,5,'j',8]
del list1[1:]
print(list1) #输出结果:['q']
7.index函数:在列表中查找元素所对应的索引值
list1 = ['q','w','f',3,5,'j',8]
print(list1.index("f")) #输出结果:2
8.sort函数:实现列表的升序排列
按照ASCII码进行排序
[img=620,0]D:\Program Files (x86)\weixinobU7Vjh_Jkx2XQxR5u4xEtsDvzCg\0aa8b974ad9d408ea11aef6d7def8d09\bq[mw0`jx8io`i9}vl5)d6i.jpg[/img]
数字排序
list1 =[44,756,13,9,64,97,87]
list1.sort()
print(list1) #输出结果:[ 9, 13, 44, 64, 87, 97, 756]
字母排序
list1 =['w','f','x','u','b']
list1.sort()
print(list1) #输出结果:['b', 'f', 'u', 'w', 'x']
list1 =['w','F','x','U','b']
list1.sort()
print(list1) #输出结果:['F', 'U', 'b', 'w', 'x']
9.sorted函数:实现降序排列
升序排序
list1 =['w','F','x','U','b','2','99','6']
print(sorted(list1)) #输出结果:['2', '6', '99', 'F', 'U', 'b', 'w', 'x']
降序排序(默认是升序排序,改变默认值reverse=True就是降序)
list1 =['w','F','x','U','b','2','99','6']
print(sorted(list1,reverse=True)) #输出结果:['x', 'w', 'b', 'U', 'F', '99', '6', '2']
10.reverse函数:列表元素反转
list1 =['w','F','x','U','b','2','99','6']
list1.reverse()
print(list1) #输出结果:['6', '99', '2', 'b', 'U', 'x', 'F', 'w']
11.pop函数(删除元素,默认删除最后一个元素)
删除空列表,引发报错
1.默认移除列表最后一个元素,并返回元素的值
2.移除指定位置的元素list1.pop(0)表示移除第一个元素
3.在列表中pop函数是唯一一个既能改变列表元素又有返回值
list1 =['w','F','x','U','b','2','99','6']
list1.pop()
print(list1) #输出结果:['w', 'F', 'x', 'U', 'b', '2', '99']
通过索引删除
list1 =['w','F','x','U','b','2','99','6']
list1.pop(2)
print(list1) #输出结果:['w', 'F', 'U', 'b', '2', '99', '6']
|
|