深度之眼(五)——Python组合数据类型
文章目录
接深度之眼(一)和(二)
零、导读
4.1 列表
4.1.1 列表的表达
- 序列类型:内部元素有位置关系,能通过位置序号访问其中元素
- 列表是一个可以使用多种类型元素,支持元素增、删、改、查操作的序列类型
- 另一种产生方式: list(可迭代对象)
- 可迭代对象包括:字符串、元组、集合. range()等
- 字符串转列表
list("人工智能是未来的趋势")
2. 元组转列表
list(("我","们","很","像"))
3. 集合转列表
list({"李雷","韩梅梅","hello","world"})
4. 特殊的range()
for i in [0,1,2,3,4,5]:
print(i)
for i in range(6):
print(i)
range(起始数字、中止数字、数字间隔)
for i in range(1,11,2):
print(i)
中止的数字是取不到的
- range()转列表
4.1.2 列表的性质
- 列表的长度——len(列表)
len([1,2,3,4])
- 列表的索引——与同为序列类型的字符串完全相同
变量名[位置编号]
正向索引从0开始
反向索引从-1开始
cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[0])
print(cars[-1])
- 列表的切片
变量名[开始位置:结束位置:切片间隔] - 正向切片
cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[:3])
print(cars[1:4:2])
print(cars[:])
print(cars[-4:-2])
- 反向切片
cars = ["BYD","BMW","AUDI","TOYOTA"]
print(cars[:-4:-1])
print(cars[::-1])
4.1.3 列表的操作符
4.1.4 列表的操作方式(详细)
1.、增加元素
- 在末尾增加元素——列表 append(待增元素)
- 在任意位置插入元素——列表insert(位置编号,待增元素)
- 在位置编号相应元素前插入待增元素
- 在末尾整体并入另一个列表——列表1.extend(列表2)
2、删除元素
cars = ["BYD","BMW","AUDI","TOYOTA"]
cars.append("CCTV")
cars.insert(1, "BBC")
cars.pop(2)
cars
删除列表里某个所有元素
3、查找元素
- 列表中第一次出现待查元素的位置——列表.index(待查元素)
- 不存在会报错
cars = ["BYD","BMW","AUDI","TOYOTA"]
cars.append("CCTV")
cars.insert(1, "BBC")
cars.pop(2)
ind = cars.index("CCTV")
print(ind)
cars
4、修改元素
-
通过“先索引后赋值”的方式,对元素进行修改——列表名[位置] = 新值
5、列表的赋值 -
错误的方式
情况:删除旧列表某个元素后,新列表也会随之更新
- 正确方式——浅拷贝
- 方法1:列表.copy()
- 方法2:列表[:]
6、列表的排序
- 使用列表.sort()对裂变进行永久排序
- 直接在列表上进行操作,无返回值
- 使用sorted(列表)对列表进行临时排序
- 原列表保持不变,返回排序后的列表
7、列表的反转
- 使用列表. reverse()对列表进行永久翻转
- 直接在列表上进行操作,无返回值
8、使用for循环对列表进制遍历
4.2 元组
4.2.1 元组的表达
- 元组是一个可以使用多种类型元素,一旦定义,内部元素不支持增、删和修改操作的序列类型
通俗的讲,可以将元组视作“不可变的列表”
names = ("Peter","Pual","Mary")
4.2.2 元组的操作
- 不支持元素增加、删除、修改
- 其他操作与列表完全一致
4.2.3 元组的常见用处
打包与解包
- 例1
- 例2
4.3 字典
4.3.1 字典的表达
-
映射类型:通过键”-*值”的映射实现数据存储和查找
-
常规的字典是无序的
字典键的要求 -
1、字典的键不能重复
-
2、字典的键必须是不可变类型,如果键可变,就找不到对应存储的值了
-
不可变类型:数字、字符串、元组。一旦确定, 它自己就是它自己,变了就不是它了。
-
可变类型:列表、字典、集合。-一旦确定,还可以随意增删改。
4.3.2 字典的性质
4.3.3 字典的操作方法
1、增加键值对
- 变量名[新键] = 新值
2、删除键值对 - 通过del变量名[待删除健]
- 通过变量名.pop(待删除健)
- 变量名.popitem() 随机删除一个键值对,并以元组返回删除键值对
3、修改值 - 通过先索引后赋值的方式对相应的值进行修改
4、d.get( )方法(多看看,有点晕)
d.get(key,default)从字典d中获取键key对应的值, 如果没有这个键,则返回default
- 小例子:统计“牛奶奶找刘奶奶买牛奶”中字符的出现频率
5、d.keys( ) d.values( )方法
6、d.items( )方法及宇典的遍历
4.4 集合
4.4.1 集合的表达
- 一系列互不相等元素的无序集合
- 元素必须是不可变类型:数字,字符串或元组,可视作字典的键
- 可以看做是没有值,或者值为None的字典
4.4.2集合的运算
- 小例子通过集合进行交集并集的运算
- 语文和数学两门均为A的学员
- S & T返回一个新集合,包括同时在集合S和T中的元素
- 语文或数学至少- -门为A的学员
- S|T返回一个新集合,包括集合S和T中的所有元素
4.4.3 集合的操作方法
- 增加元素一S.add(x)
- 移除元素一S.remoxe(x)
- 集合的长度一len(S)
- 集合的遍历——借助for循环
小结
列表
元组
字典
集合