文章目录
一、列表
1.1 特征
列表是有序的,可修改的,可切片
1.2 增
指定索引位置插入
# pos代表索引值,val代表插入的值
list.insert[pos, val]
*尾插
# 只能插入单个元素
list.append(val)
# 插入其他类型的容器
list.extend(list2) # 将list2拆散插入到list尾部
1.3 删
指定位置删除
# del ,无返回值,是通用的函数
del list[pos]
# pop,返回删除的值
val = list.pop(pos)
指定元素删除
# remove,指定元素删除,删除第一个匹配项,无返回值
list.remove(val)
清空列表
# 清空列表
list.clear()
1.4 改
# 修改指定索引位置的值
list[pos] = val
1.5 查
# 获取指定索引位置的值
list[pos]
# 统计某元素的数量
list.count(val)
# 统计列表长度(通用函数,非方法)
len(list)
1.6 遍历列表
list1 = [21, 25, 21, 23, 22, 20]
# while 遍历
index = 0
while index < len(list1):
print(list1[index])
index += 1
# for遍历
for i in list1:
print(i)
二、元组
2.1 特征
元组是有序的,不可修改的,所以元组没有增删改的操作
2.2 查
# 获取元素
tuple1[pos]
# 查找数据,存在返回下标,否则报错
tuple1.index(val)
# 统计元素出现的次数
tuple1.count(val)
# 元组的长度
len(tuple1)
2.3 元组的遍历
元组的遍历方法和列表一模一样
三、字符串
3.1 特征
字符串有序,不可更改,所以没有增删改的操作
3.2 查
# 根据索引查找元素
str1[pos]
# 查找指定字符串的第一个指定的下标
## 这里的查找的字符串可以是单字符也可以是多字符,多字符则返回首字母的下表值
str1.index(val)
# 替换,将str1全部替换为str2,不会修改原字符串,而是得到新的
str1.replace(str1, str2)
# 按指定符号|分割为列表
str1.split("|")
# 移除收尾空格、换行符或指定字符串
str1.strip()
str1.strip(val)
# 统计某字符的数量
str1.count(val)
# 统计字符串长度(通用函数,非方法)
len(str1)
四、集合
4.1 特征
无序、元素不重复、可修改
五、字典
特征:由{}定义,数据以键值对的新式存在
如:dict1 = {k1:v1, k2:v2,…}
key值不能重复,key可以为除了字典以外的任意数据类型,值没有任何限制
字典没有索引,通过key找value
六、五种数据容器对比
列表 | 元组 | 字符串 | 集合 | 字典 | |
---|---|---|---|---|---|
元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 |
元素类型 | 任意 | 任意 | 仅字符 | 任意 | 键值对,key除字典以外,value无限制 |
下表索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
可修改性 | 可修改 | 不可修改 | 不可修改 | 可修改 | 可修改 |
数据有序 | 有序 | 有序 | 有序 | 无序 | 无序 |
七、数据容器的通用操作
注意:
- 找最大和最小时,字典找的是key
- 将字典转换为其他类型时,只转key,抛弃value,key全部为字符
- 将字符串转为列表时,会将每个字符单独拆分
- 任何类型转成字符串本身都不变,知识在本身两边加上双引号
- 任何类型都不能转成字典类型
- 注意比较大小和排序,都是基于符号对应的ASCLL码值的大小进行比较的,小写的字符要比大写的大,按顺序比较,只要有一个大后面就不比较了