数据容器一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器:list(列表)
列表的定义方式:
使用[]的方式定义列表
[元素1, 元素2, 元素3, …]
如my_list = [‘a’,‘b’,‘c’]
空列表 koog_list=list()
列表的下标索引
列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增
如my_list[0],my_list[1]
常用操作如下:
列表的特点:
- 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
- 可以容纳不同类型的元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
列表的遍历 - while循环
index = 0
while index < len(my_list):
a = my_list[index]
print(a)
index += 1
列表的遍历 - for循环
for i in my_list:
print(i)
#数据容器:元组(tuple)
元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了
元组的定义:
yuan = (元素1,元素2,…)
yuan = ()或yuan = tuple()
元组的相关操作:
方法 | 作用 |
---|---|
index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
count() | 统计某个数据在当前元组出现的次数 |
len(元组) | 统计元组内的元素个数 |
元组由于不可修改的特性,所以其操作方法非常少
数据容器:str(字符串)
字符串常用操作:
字符串的特点:
- 只可以存储字符串
- 长度任意(取决于内存大小)
- 支持下标索引
- 允许重复字符串存在
- 不可以修改(增加或删除元素等)
- 支持for循环
数据容器(序列)的切片
序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列
[n:m] 包前不包后
起始下标表示从何处开始,可以留空,留空视作从头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
步长表示,依次取元素的间隔
切片的演示:
my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4] # 下标1开始,下标4(不含)结束,步长1
print(new_list) # 结果:[2, 3, 4]
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:] # 从头开始,到最后结束,步长1
print(new_tuple) # 结果:(1, 2, 3, 4, 5)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2] # 从头开始,到最后结束,步长2
print(new_list) # 结果:[1, 3, 5]
my_str = "12345"
new_str = my_str[:4:2] # 从头开始,到下标4(不含)结束,步长2
print(new_str) # 结果:"13"
my_str = "12345"
new_str = my_str[::-1] # 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str) # 结果:"54321"
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:1:-2] # 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
print(new_tuple) # 结果:(5, 3)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[3:1:-1] # 从下标3开始,到下标1(不含)结束,步长-1(倒序)
print(new_list) # 结果:[4, 3]
数据容器 :set(集合)
特点:去重且无序,可以修改
集合的定义
变量 = set()
变量 ={元素1,元素2,元素3,…}.
集合常用功能:
数据容器:dict(字典、映射)
python的字典:
Key: Value
字典的定义,同样使用{},不过存储的元素是一个个的:键值对
变量 ={key:value,ey:value,ey:value…}
变量 = {}
变量 = dict()
字典的注意事项:
- 键值对的Key和Value可以是任意类型(Key不可为字典)
- 字典内Key不允许重复,重复添加等同于覆盖原有数据
- 字典不可用下标索引,而是通过Key检索Value
常用操作总结
遍历字典:
keys = 变量.keys
for key in keys:
print(f"{key},{变量[key]}")
字典生成式 :
d = {key: value for (key, value) in iterable}
其中iterable是一个可迭代的对象,比如list
实列:
# for 循环遍历列表,将列表中小元组的key和value取出,作为字典中的key:value
list4 = [('name','zhangsan'),('age','11'),('phone','a')]
dict_1 = {key:value for key,value in list4}
print (dict_1)
输出
{'phone': 'a', 'name': 'zhangsan', 'age': '11'}
数据容器特点对比:
基于各类数据容器的特点,它们的应用场景如下:
- 列表:一批数据,可修改、可重复的存储场景
- 元组:一批数据,不可修改、可重复的存储场景
- 字符串:一串字符串的存储场景
- 集合:一批数据,去重存储场景
- 字典:一批数据,可用Key检索Value的存储场景