变量这种存储单个数据的容器,也会提供光存储多个数据容器
– 线性容器:具备顺序
数组(Array):连续内存
链表(List):Python list的容器,底层使用的就是双向链表结构
栈(Stack):先进后出
队列(Queue):先进先出
hash表:
**列表:**是一种线性结构的容器,底层使用的是双向链表结构设计
定义一个 list 容器:
利用若数据类型语言的特点,直接将[]这种列表数据赋给变量,则变量就是list类型
ls = [1, 2, 3, 3, 23]
也可以使用全局函数 list
ls = list()
ls = list([1, 2, 3, 4, 5])
访问列表中的元素:
因为list是有序的线性结构,因此每一个都是存在下标(索引)的,所以可以直接通过下标来访问列表对象[下标] # 获取变量对应的元素
⏰ 注意:下标从0开始
得到list中的元素个数:
len(列表对象) # 返回对象的元素个数
列表的遍历:
for 临时变量 in 容器: 每一次循环得到一个元素,被保存到临时变量中 也可以使用while,通过索引获取
list列表的常见方法:
dir(模块/对象) # dir全局函数可以打印输出模块或者对象的方法或者属性 help(方法) # 返回帮助文档 ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
set是一种无序的集合,是一种hash表(哈希表)的实现,所以具备如下特点:
1、无序
2、不重复
定义一个set:
s = {必须有元素} # 注意:不要使用空的{},这样定义的是字典
s = set()
s = set([1, 2, 3, 4])
# 相当于将list转化成了set
常见方法
[ 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
不可变数据类型,类似于其他编程语言的枚举类型
代表一组固定不变的
定义一个tuple:
season = ("春", "夏", "秋", "冬")
常见方法:
元组只有一个元素默认类型为该元素类型
强制设置只有一个元素的元组类型为元组,则在元素后,加逗号即可
定义一个tuple:
d = {"name": "tom", "age": 16}
>>> d = {"name": "tom", "age": 16} >>> d.get("name") 'tom' >>> d.get("age") 16 >>> d.keys() dict_keys(['name', 'age']) >>> d.values() dict_values(['tom', 16]) >>> d["address"] = "Chongqing" # 增加键值对
常见方法:
['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
字典遍历:
d = {"name": "tom", "age": 16} for i in d: print(k) # 打印键 for j in d: print(j, d[j]) # 打印键值 for k in d.keys(): print(k, d[k]) # 打印键值 for (key, value) in d.items(): print(key, value) for res in d.items(): print(res[0], res[1]) #res[0]:键 res[1]:值