- 容器定义
- 列表 list
- 定义
- 下标索引
- 列表的方法
- 查询指定元素的下标 index(元素)
- 修改指定下标的元素值
- 插入元素 insert(index,元素)
- 追加一个元素 append(元素)
- 追加一批元素 extend(容器)
- 删除指定下标的元素
- 删除指定元素的第一次出现 remove(元素)
- 清空列表 clear()
- 统计列表中指定元素的个数 count(元素)
- 列表的元素个数 len()
- 遍历列表
- while
- for
- 元组
- 定义
- 下标索引
- 元组操作
- 元组遍历
- 字符串
- 下标索引
- 大小比较
- 操作
- index(字符串)
- 统计某字符出现的次数 count()
- 字符串的长度 len()
- 字符串替换 replace()
- 字符串分割 split
- 规整操作1 strip()
- 规整操作2 strip(字符串)
- 序列容器
- 序列切片
- 集合 set
- 定义
- 常用操作
- 添加元素 add()
- 移除元素 remove()
- 随机取出一个元素 pop()
- 清空集合 clear()
- 取出两个集合的差集 difference
- 消除两个集合的差集 difference_update
- 两个集合合并 union
- 统计集合的元素个数 len()
- 遍历集合
- 字典
- 定义
- 访问键值对
- 嵌套
- 常用操作
- 新增元素 修改元素
- 删除指定键值对 pop(key)
- 清空字典 clear()
- 获得全部key keys()
- 遍历字典方法1
- 遍历字典方式2
- 统计字典的元素个数 len()
- 容器的通用操作
- len()
- 容器中最大或最小元素:max()与min()
- 容器的转换函数
- 排序功能 sorted()
- 总结
容器定义
可以容纳多份数据的数据类型,每份数据称为元素。元素可以为任意数据类型,不同元素可以为不同类型。
列表使用可以修改的,允许重复元素的出现
列表 list
- 支持下标索引
- 可以被修改(增删改)
- 支持重复元素的出现
定义
列表类似数组,可以有多维。使用中括号来定义,元素之间用逗号隔开。
变量 = [元素1,,元素2,...]
变量 =list() # 空列表
可以嵌套列表,类似多维数组。
num=[[1,2,3],[1,2,3,4]]#
下标索引
列表为有序存储
可以正向,从0开始
可以反向,从-1开始
列表的方法
查询指定元素的下标 index(元素)
功能:寻找指定元素在列表的正向下标。若不存在,则会报错ValueError
语法:列表变量.index(元素)
修改指定下标的元素值
语法:列表变量[下标]=新值
插入元素 insert(index,元素)
功能:在指定的下标插入指定的元素,原本的元素会被后移
语法:列表.insert(index,元素)
有两种情况:
- index小于最大下标,则按照index插入
- index大于等于最大下标,则在列表尾部插入
l=[0,1,2]
l.insert(3,3)# [0,1,2,3] 在末尾插入
追加一个元素 append(元素)
功能:在列表末尾插入元素
语法:列表.append(元素)
追加一批元素 extend(容器)
功能:将容器中的元素都追加到列表中
语法:列表.extend(容器)
删除指定下标的元素
语法:
- del 列表[下标]
- 列表.pop[下标]:会返回被删除的元素
若指定的下标没有数据,会报错
删除指定元素的第一次出现 remove(元素)
功能:寻找指定元素,将第一次出的删除
语法:列表.remove(元素)
若元素不存在,会报错ValueError
清空列表 clear()
语法:列表.clear()
统计列表中指定元素的个数 count(元素)
语法:列表.count(元素)。会返回个数,类型为int
列表的元素个数 len()
语法:len(列表)
遍历列表
可以使用while与for
while
继续循环的条件为当前遍历到的下标小于列表的长度。
while循环可以遍历
my_list=[0,1,2,3]
index=0
while index < len(my_list):# 循环条件print(my_list[index])index +=1# 循环变量增加
for
for循环是将列表中的各个元素一个个提取到临时变量
my_list=[0,1,2,3]for data in my_list:print(data)
元组
- 支持下标索引,数据有序
- 可以重复
- 不可修改,但如果元组里嵌套了如列表等可以修改的容器,可以修改这些容器
- 数据可以为任意类型
定义
使用小括号来定义,元素可以为任意数据类型。
注意:若元组只有一个数据,则要在后面加上逗号,否则不是元组类型
(元素,元素,...)
tuple(元素,元素,...)
(元素,)# 只有一个元素,要加上逗号
元组也可以嵌套
下标索引
与列表一样的规则。
元组操作
只有 index(元素),count(元素)与len(元组)
元组遍历
与列表一样,使用while与for
字符串
- 只能存储字符
- 支持下标索引
- 不可修改
下标索引
与列表一样。
大小比较
从前向后,逐位比较字符串中对应字符的ASCII码大小,只要有一位大则大
操作
index(字符串)
功能:在字符串中,指定字符串第一次出现的下标。不存在,则ValueError
语法:字符串.index(字符串)
统计某字符出现的次数 count()
字符串的长度 len()
字符串替换 replace()
语法:字符串.replace(字符串1, 字符串2)
功能:将 字符串 中所有的 字符串1都替换为字符串2
注意:并没有修改字符串,而是生成了新的字符串,会返回一个替换后的字符串。
字符串分割 split
语法:字符串.split(分割符字符串)
语法:按照指定的分割符字符串,将字符串分割为多个字符串,并存入列表对象中。
注意:字符串本身不会改变,而是得到一个列表对象。
str1="hello"
str_list=str1.split("ll")
print(str_list,type(str_list))
输出:['he', 'o'] <class 'list'>
规整操作1 strip()
语法:字符串.strip()
功能:去除前后空格
注意:字符串本身不会改变,会返回一个新字符串
str4=" hello "
print(str4.strip())
规整操作2 strip(字符串)
语法:字符串.strip(字符串)
功能:去除前后指定的字符串
注意:字符串本身不会改变,会返回一个新字符串
str5="12hello21"
print(str5.strip("12"))
注意:传入的是"12",其实是:“1"和"2” 都会被移除,是按照单个字符进行处理,满足其中一个字符即可。
其实也就是判断字符串头尾字符在指定字符串中是否存在。存在则将其删除,然后继续下一个。若头尾都不存在,则结束。
序列容器
内容连续、有序、可以使用下标索引的一类容器。
列表、元组、字符串,均可以视为序列。
序列切片
从序列中取出一个子序列,对原序列无影响。
子序列的数据类型与原序列相同
语法:序列[起始下标:结束下标:步长]
- 起始下标:从何处开始,可以留空,留空代表从头开始
- 结束下标:从何处结束,注意子序列中不包含结束下标的数据,留空代表截取到尾部
- 步长:间隔。如步长为2,代表每次跳过一个元素取。
步长可以为负数,反向取数,注意此时起始与结束下标也要反向标记
my_list=[0,1,2,3,4,5,6,7,8]print(my_list[1:4])# [1,2,3] 下标为4的值不会取出# 起始下标留空代表从头开始,结束下标留空代表截取到尾部
print(my_list[:])# 步长为2
print(my_list[::2])# [0,2,4,6,8]# 步长为负数,反向取
print(my_list[::-1])# [8, 7, 6, 5, 4, 3, 2, 1, 0] 倒序输出# 起始下标与结束下标也要反向
print(my_list[4:1:-1])# [4, 3, 2]# 步长为-2
print(my_list[::-2])# [8, 6, 4, 2, 0]
集合 set
与序列容器相比,集合中的元素不可重复而且无序。元素可以为任意数据类型。
- 不可重复,会去重
- 乱序
- 元素为任意类型
- 可以修改
定义
使用大括号。
变量={元素,元素...}
变量=set()
常用操作
添加元素 add()
语法:集合.add(元素)
移除元素 remove()
语法:集合,remove(元素)。若指定元素不存在,则ValueError
随机取出一个元素 pop()
语法:集合.pop()
功能:会从集合中随机取出一个元素,会返回元素。集合本身被修改,元素被删除。
若集合为空,则会报错KeyError
清空集合 clear()
语法:集合.clear()
取出两个集合的差集 difference
语法:集合1.difference(集合2)
功能:取出集合1与集合2的差集,即集合1有而集合2没有的
会返回一个新的集合,集合1与集合2不会改变。
set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)# {2,3}
set4=set2.difference(set1)# {5,6}
消除两个集合的差集 difference_update
语法:集合1.difference_update(集合2)
功能:在集合1中,删除与集合2相同的元素
集合1会被修改,集合2不变
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(set1)# {2,3}
两个集合合并 union
语法:集合1.union(集合2)
功能:将集合1与集合2组合成新集合
返回新集合,集合1与集合2不变
统计集合的元素个数 len()
语法:len(集合)
遍历集合
由于集合不支持下标索引,因此不能使用while来遍历集合。
可以使用for循环来遍历
set1={1,2,3}
for data in set1print(data)
字典
包含key与value,通过key得到value。
- key不可重复,只包含最后一个出现的key:value
- key与value可以为任意类型,但key不能为字典、列表与集合
- 不支持下标索引
定义
使用大括号,存储的元素为一个个键值对。
变量={key:value,key:value}
变量=dict()
访问键值对
字典[key]:返回对应的value
嵌套
mydict={"name":"liu","GPA":{# 字典嵌套"Math":100,"English":58},"No":5}
math=mydict["GPA"]["Math"]
print(math)
常用操作
新增元素 修改元素
语法:字典[key]=value
功能:
- 若key不存在,则会新增
- 若key存在,则会修改
删除指定键值对 pop(key)
语法:字典.pop(key)
功能:删除指定key的键值对,会返回value。若key不存在则会KeyError
清空字典 clear()
语法:字典.clear()
获得全部key keys()
语法:字典.keys()
功能:得到字典所有的key,会返回一个类型为< dict_keys >
dict1={12:"12",False:True,"12":35}
keys=dict1.keys()
print(keys)# dict_keys([12, False, '12'])
遍历字典方法1
利用keys()得到所有的keys,再加上for循环
keys=dict1.keys()
for key in keys:print(key,dict1[key])
遍历字典方式2
直接利用for循环,利用for循环得到key
for key in dict1:print(key,dict1[key])
统计字典的元素个数 len()
容器的通用操作
len()
容器中最大或最小元素:max()与min()
语法:max(容器)或min(容器)
功能:返回所求值
在字典中,寻找的是最大或最小的key。
在字符串中,寻找的是最大或最小的字符。
容器的转换函数
-
list(容器):字符串会将各个字符作为元素,字典会将key作为元素,丢失value
-
str(容器):字典会保留value。注意各种容器会包含对应的括号
-
tuple(容器):字符串会将各个字符作为元素,字典会将key作为元素,丢失value
-
set(容器):字符串会将各个字符作为元素,字典会将key作为元素,丢失value
排序功能 sorted()
语法:sorted(容器,True/False)
功能:对指定容器的元素进行排序,第二个参数默认为True,代表从小到大;False代表从大到小。
会返回一个新列表容器,对原容器没有影响。
字符串对字符进行排序,字典对key进行排序,会丢失value。