python之 字符、索引、切片、列表、集合
一、索引
索引在公司中一般叫下标或角标
定义:我们可以直接使用索引来访问序列中的元素,同时索引可分为正向和负向两种,而切片也会用到索引,下面放上一个图,有助于大
家理解正、负向索引的区别,
如图所示:
正向索引:从0开始 ,从左开始计算
负向索引:从-1开始 ,从右开始计算
存在索引:字符、列表、元组 (有序)
二、Python中的切片
定义:切片是指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作。
切片的语法:[start_index : end_index : step]
解释说明:
start_index表示起始索引
end_index表示结束索引
step表示步长,步长不能为0,且默认值为1
注意:切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引
(也就是结束索引减1)的所有元素。
案例:
str1=‘abcdefghijk’
print(str1[1:5]) #bcde
str1=‘abcdefghijk’
print(str1[1:5]) #bcde
print(str1[0]) #a
print(str1[:]) #为空代表所有, #abcdefghijk
print(str1[3:])# defghijk
print(str1[::-1]) #反转 #kjihgfedcba
print(str1[::1]) #abcdefghijk
print(str1[::3]) #adgj 步长:每隔3个
print(str1[2:8:2])#ceg
print(str1[1:2]) #b
print(str1[-1:-8:-2]) #kige
print(str1[-1:-8:-1]) #kjihgfe
print(str1[0:-1]) #abcdefghij
=================================================
字符串
1、字符串是Python中最常用的数据类型。我们可以使用单引号’'或者双引号""来创建字符串。
2、字符串中的函数
(1)capitalize():首字符大写
案例:
str1=‘abcdefghijk’
print(str1.capitalize())
截图:
(2)title()
案例:
str1=‘abcde fghijk’
print(str1.title())
截图:
(3)count():统计具体字符出现的次数
案例:
str1=‘abcdeaafghijk’
print(str1.count(“a”))
截图:
(4)join():把集合中的字符按自定义的分隔符连接在一起
案例:
str1=‘abcdeaafghijk’
print(“!”.join(str1))
截图:
(5)split():把字符串通过指定标识符进行分割
案例:
str1=‘abcdeaafghijk’
print(str1.split(b’')) #[‘a’, ‘cdeaafghijk’]
截图:
(6)strip(ab):删除字符串开头和结尾有a或b的字符
案例:
str1=‘abcdeaafghijkab’
print(str1.strip(‘ab’)) #cdeaafghijk
截图
(7)lstrip(字符):删除字符串开头有指定的字符
案例:
str1=‘abcdeaafghijkab’
print(str1.lstrip(“ab”)) #cdeaafghijk
截图:
(8)rstrip(字符串):删除字符串结尾有指定的字符
案例:
str1=‘abcdeaafghijkab’
print(str1.rstrip(“ab”)) #abcdeaafghijk
截图:
(9)、startswith():判断字符串是否以什么开始
案例:
str1=‘abcdeaafghijkab’
print(str1.startswith(“a”)) #True
print(str1.startswith(“sa”)) #False
截图:
(10)endswith():判断字符串是否以什么结束
(11)find()/rfind(): 字符串查询find()是左边开始查,rfind()从右边开始查,结果 显示下标(索引位)
案例:
str1=‘abcdbeaafghijkab’
print(str1.find(“b”)) #1
print(str1.rfind(“b”)) #15
截图:
(12)replace():replace(substring,newstring,max) substring表示被替换的字符串,newstring要替换字符串,max表示替换的次数
案例:
str1=‘abcdbeaafghijkab’
print(str1.replace(“b”,“1”)) #a1cd1eaafghijka1
print(str1.replace(“b”,“1”,2)) #从左往右开始替换 #a1cd1eaafghijkab
截图:
(13)lower():方法转换字符串中所有大写字符为小写
案例:
str2=‘ABC’
print(str2.lower())#abc
截图:
(14)upper():将字符串中的所有小写字符转换为大写字母输出
案例:
str3=“xyz”
print(str3.upper())#XYZ
截图:
(15)isdigit():判断字符串中是否全为数字
案例:
str3=“xyz11”
str4=“1223”
print(str3.isdigit())#False
print(str4.isdigit())#True
截图:
16、isalpha():判断字符串中是否全为字母
案例:
str1=‘abcdbeaafghijkab’
str2=‘ABC’
str3=“xyz11”
str4=“1223”
print(str1.isalpha())#True
print(str3.isalpha())#False
print(str2.isalpha())#True
Python中的列表
(1)定义:列表(list)是一组有序存储的数据,也是python常见的序列之一,序列中的每个元素都分配一个索引,第一个元素索引是0,第二个元素索引是1,依此类推。序列都可以进行的操作包括索引,切片,加,乘,检查成员
(2)列表表达符为:[ ]
(3)定义列表的两种方法:
方法一:list1 = [1,2,3,4] #直接通过[]进行定义
方法二:list2 = list(‘1234’) #使用list()方法进行定义
案例:
list1=[1,2,3,4]
print(type(list1)) #
str1=‘1234’
print(type(str1)) #
c=list(str1)
print(type©) #
print© #[‘1’, ‘2’, ‘3’, ‘4’]
截图:
二、列表中对应的函数
1、索引和切片赋值
list1=[1,2,3,4](替换)
list1[1]=“a”
print(list1)
2、append函数:添加一个元素
案例:
list1=[1,2,3,4,‘中国’]
list1.append(“a”)
print(list1)
截图:
3、extend函数:连接两个列表
案例:
list1=[1,2,3,4,‘中国’]
list2=[5,6,7,8,9]
list1.extend(list2)
print(list1)
print(list2)
截图:
4、insert(index,value)函数:在指定位置插入一条数据
案例:
list1=[1,2,3,4,‘中国’]
list1.insert(2,“多”)
print(list1)
截图:
根据索引切片插入、append 、insert 三个插入的区别?
5、remove函数:移除元素
案例:
list1=[1,2,3,4,‘中国’]
list1.remove(1)
print(list1)
截图:
6、del 索引删除值
案例:
list1=[1,2,3,4,‘中国’]
del list1[3]
print(list1)
截图:
7、index函数:在列表中查找元素所对应的索引值
案例:
list1=[1,2,3,4,‘中国’]
print(list1.index(3))
截图:
8、sort函数:实现列表的升序排列
案例:
list1=[8,1,6,3,4]
list1.sort()
print(list1)
截图:
9、sorted函数:实现降序排列
案例:
list1=[8,1,6,3,4]
print(sorted(list1,reverse=True)) #降序
print(sorted(list1,reverse=False))#升序
截图:
10、reverse函数:列表元素反转
案例:
list1=[8,1,6,3,4]
list1.reverse()
print(list1)
截图:
11、pop函数:
案例:
Python中的元组
定义:元组(tuple)是Python中常用的一种数据结构。
元组由不同的元素组成,
每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。
元组是’写保护’的,即元组中元素作为一个整体,创建后不能再做任何修改操作。
元组表达符为:()
元组的定义:tuple1=(1,2,3)
注意:当元组只有一个元素时,后面要加逗号,如:tuple1=(1,)
案例:
tuple1=(1,2,3,4)
print(type(tuple1)) #
tuple2=(2,)
print(type(tuple2)) #
截图:
1、index 查看元素的索引(有序)
案例:
tuple1=(1,2,3,4)
print(tuple1.index(2))#1
2、元组需要修改,只能将元组转换成列表,使用列表的函数操作,然后再列表转换元组
案例:
tuple1=(1,2,3,4)
print(type(tuple1))
list1=list(tuple1) # 通过list将元组转换成列表
print(type(list1)) #
print(list1) #[1, 2, 3, 4]
list1.insert(2,5) #通过列表中函数insert 插入数据
print(list1)
tuple2=tuple(list1) #将列表转换成元组
print(type(tuple2)) #
print(tuple2)
面试题:元组和列表的区别
相同:
1、有序
2、都支持切片,迭代操作
不同:
1、括号不同:列表:【】 元组:()
2、字符类型不同:list tupe
3、列表可变,元组不可变
=======================================================
Python中的字典
定义:
1、字典(dict)是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值key:value对用冒号 : 分割,每个键值对之间用逗号分割,整个字典包括在大括号 {} 中
2、字典同时是无序,字典都是以键值对的形式存在,先键后值,键是唯一的,值且不唯一
字典表达符:{ }
字典的定义方式:
方式一:通过{}直接定义
案例:
dict1={‘name’:“zs”,‘age’:18}
print(dict1)
print(type(dict1)) #
截图:
方式二:通过dict()方法定义
代码:
dict2=[(‘name’,‘lisi’),(‘age’,18),(‘sex’,’ 男’)]
print(type(dict2)) #
d=dict(dict2)
print(d) #{‘name’: ‘lisi’, ‘age’: 18, ‘sex’: ’ 男’}
print(type(d))#
截图:
================================
字典中常见的函数:
(1)添加一个键值对(添加一个不存在的键)
案例:
dict1={‘name’:“zs”,‘age’:18}
dict1[“sex”]=‘女’
print(dict1)
截图:
案例2:添加一个键值对(添加一个存在的键)
dict1={‘name’:“zs”,‘age’:18}
dict1[‘age’]=20
print(dict1) #{‘name’: ‘zs’, ‘age’: 20}
(2)keys取出键返回列表
案例:
dict1={‘name’:“zs”,‘age’:18}
print(dict1.keys()) #dict_keys([‘name’, ‘age’])
截图:
(3)valies 取出值返回列表
案例:
dict1={‘name’:“zs”,‘age’:18}
print(dict1.values()) #dict_values([‘zs’, 18])
(4)取出具体键的值
案例;
dict1={‘name’:“zs”,‘age’:18}
print(dict1[‘name’]) #zs
截图:
(5) 字典添加元素setdefault() 默认值
案例1:插入不存在的键,直接添加
dict1={‘name’:“zs”,‘age’:18}
dict1.setdefault(“sex”,“男”)
print(dict1)#{‘name’: ‘zs’, ‘age’: 18, ‘sex’: ‘男’}
截图:
案例2:插入存在的键,还是显示字典中的键值
dict1={‘name’:“zs”,‘age’:18}
dict1.setdefault(“age”,“20”)
print(dict1)#{‘name’: ‘zs’, ‘age’: 18}
截图:
(6) del 删除字典
案例:
dict1={‘name’:“zs”,‘age’:18}
del dict1[“name”]
print(dict1)
截图:
(7)clear 清空字典
案例:
dict1={‘name’:“zs”,‘age’:18}
dict1.clear()
print(dict1)
截图:
(8)字典的遍历:for…in…遍历字典
案例:
dict1={‘name’:“zs”,‘age’:18}
for i in dict1:
print(i,dict1[i])
截图:
(9)使用items()完成遍历
案例:
dict1={‘name’:“zs”,‘age’:18}
for k,v in dict1.items():
print(k,v)
截图:
(10)、pop(key)函数,删除指定键并返回删除的值
案例:
dict1={‘name’:“zs”,‘age’:18}
dict1.pop(“name”)
print(dict1)
截图:
(11)get(key)方法,通过key获取值,当键不存在,返回None
案例:
dict1={‘name’:“zs”,‘age’:18}
print(dict1.get(“name”))
截图:
(12)fromkeys函数可以给具体的键指定值
(1)快速创建字典
案例1
print({}.fromkeys([“name”,“age”]))
(2)快速创建字典中的键和值
(13)
案例:
dict1={‘name’:“zs”,‘age’:18}
dict1.popitem()
print(dict1)
截图:
(14)、update函数利用一个字典更新另外一个字典
代码:
dict1={‘name’:“zs”,‘age’:18}
dict2={“sex”:" 男"}
dict1.update(dict2)
print(dict1)
集合:最重要的功能就是去重
1、可变集合set
字符:set
2、不可变集合frozenset
讲解:
可变集合set
(1) 集合去重
案例1:对列表去重
list1=[1,2,5,6,1,7,5,1]
print(type(list1)) #
c=set(list1)
print(type©) #
print© #{1, 2, 5, 6, 7}
(2)截图
(2)对字符去重
案例:
str1=‘abcdabcdefgaaa’
c=set(str1)
print©
list1=[1,2,5,6,1,7,5,1]
c=set(list1)
print© # {1, 2, 5, 6, 7}
c.add(8)
print© #{1, 2, 5, 6, 7, 8}
3、remove 删除集合中的数
案例:
list1=[1,2,5,6,1,7,5,1]
c=set(list1)
print© # {1, 2, 5, 6, 7}
c.remove(5)
print©
截图:
4、clear 清除集合
案例:
list1=[1,2,5,6,1,7,5,1]
c=set(list1)
print© # {1, 2, 5, 6, 7}
c.clear()
print©
截图:
6、copy复制集合
案例:
list1=[1,2,5,6,1,7,5,1]
c=set(list1)
print© # {1, 2, 5, 6, 7}
s=c.copy()
print©
print(s)
总结:切片字符、列表、元组、字典、集合(可变集合,不可变集合)
1、切片字符、列表、元组、字典、集合(可变集合,不可变集合) 联系区别