- 数据结构[容器]
List(列表) ,tuple(元组),dict(字典),set(集合)就是用来存放大量数据,而且这些都是开辟在堆里面的。
- 列表list
2.1列表是一直线性表,有大量的节点组成,每一个节点都可以存储数据,所以列表可以存储大量的数据。
语法:a = list() 创建了一个空列表
a = list([1,2,3])创建了一个列表,并且赋值1,2,3
a = [1,2,3]同时也可以利用弱数据类型语言的特点来创建列表
2.2python中如何使用列表,定义列表
通过下标来判断这个元素,都是从0开始的,而且定义多少个,就输出多少个,千万不可越界,不然会出错。
语法: 列表[下标] = 新值
2.3遍历元素
for 变量 in 容器:
变量代码容器中的一个确定的元素
2.4如何判断列表的长度
len全局函数可以判断列表的长度
使用while循环遍历
index = 0
while index < len(a):
print(a[index])
index +=
2.5列表的常用方法
'append', 'clear','copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
append #在列表末尾添加一个元素
clear # 清除列表中的所有元素
copy # 复制列表(浅拷贝list)一定分别出拷贝和引用传递
count 统计元素在列表中的个数
index 查询元素在列表中第一次出现的下标位置,注意:
如果列表中不存在该元素,则抛出异常
insert 制定要插入的元素的位置
pop 通过下标移除元素,注意:默认没有下标时删除最后一个
remove 移除对应的元素,,注意:如果列表中不存在该元素,则抛出异常
reverse 翻转元素的顺序
sort 排序(主要针对数字)
extend 合并列表
- 集合(set)
set()全局函数
注意:如果没有初始化的值,不要直接使用{}反向定义,默认字典类型
特点:元素唯一,不允许重复,无序的
3.1 set的常用方法
'add', 添加
'clear', 清除
'copy', 拷贝
'difference', 差集,前面差集后面,输出前面的
'discard', # 移除元素,如果存在,不存在也不报错
'intersection', 交集
'pop', # 随机移除,一般不用
'remove', # 移除元素,不存在会报错
'union', 并集
在Python,{}不一定就是set,也有可能是字典
- 元组(tuple)
不可变类型,一旦写定输入不可变,可以重合。
表示的固定,不变的值。
t1 = tuple((1,3,45,5))
元组也是通过下标访问的。
元组是不可变类型
常用方法:
count
index
注意:元组是不可变类型,意味着当元组中的值定义好之后,再无法修改,
但是注意,如果元组的元素是可变类型,那么该元组是可变的!!
注意2:
在定义元组时,如果只有一个元素,那么一定要在该元素后面加个逗号,
否则Python解释器会将该元组当成一个数字对待(圆括号就数学上的含义)
5.字典(dict)
Python中的字典类型,key必须是字符串!!!
定义:{"name": "xxx", "age": 17}
dict()
dict({"name": "xxx", "age": 17})
访问元素
d[key]
d[key] = 新值 # 如果key不存在,则新增这个键值对
常见的方法:
'clear',
'copy',
'fromkeys',
'get', # 通过key或者该key对应的值,如果没有这个key,则返回None
'items', # 成对返回键值对
'keys', # 返回所有的key
'pop', # 通过key,删除对应的键值对,注意:如果该键不存在,则抛出异常
'popitem', # 移除一个键值对,按照LIFO规则
'values' # 返回所有的值
字典的迭代:
第一种方式:
for k in d2:
print(k, d2[k])
第二种方式:
for key in d2.keys():
print(k, d2[k])
第三种方式:
for k,v in d2.items():
print(k, v)