python内置容器:
容器篇:
变量这种存储单个数据的容器,也会提供存储多个数据容器
线性容器:
数组(Array):连续内存
链表(List):python list的容器,底层使用的就是双向链表结构
栈(Stack):先进后出
队列(queue):先进先出
hash表:
list:
列表,是一种线性结构的容器,底层使用的双向链表结构设计
定义一个list容器:
利用弱数据类型语言的特点:直接将[]这种列表数据赋给变量,则变量就是list类型
ls = [1, 2, 3, 3, 445]
也可以使用全局函数list
ls = list()
ls = list([1, 2, 3, 3, 445])
访问列表中的元素:
因为list是有序的线性结构,因此每一个都是存在下标(索引)的,所以可以直接通过下标来访问
列表对象[下标] # 获取变量对应的元素
注意:下标从0开始
得到list中的元素个数:
len(列表对象) # 返回对象的元素个数
列表的遍历:
for 临时变量 in 容器:
每一次循环得到一个元素,被保存到临时变量中
也可以使用while,通过索引获取
list列表的常见方法:
dir(模块/对象) # dir全局函数可以打印输出模块或者对象的方法或者属性
help(方法) # 返回帮助文档
['append', 'clear', 'copy', 'count', 'extend', 'index',
'insert', 'pop', 'remove', 'reverse', 'sort']
|-- append(新元素) # 在尾部添加新元素
|-- insert(index, 新元素) # 在index位置添加新元素
|-- extend(列表) # 合并列表
|-- clear() # 清空列表
|-- pop() # 删除最后一个元素,并返回它
|-- remove(元素) # 删除对应的元素
|-- index(元素) # 返回元素的下标索引
|-- count(元素) # 统计某个元素在列表中的数量
|-- reverse() # 翻转列表
|-- sort() # 数据的类型必须相同
|-- copy() # 复制list对象
set(集合):
set是一种无序的集合,是一种hash表(哈希表)的实现,所以具备如下特点:
1、无序
2、不重复
定义一个set:
s = {必须有元素} # 注意,不要使用空的{},这样定义的是dict
常见方法:
['add', 'clear', 'copy', 'difference', 'difference_update',
'discard', 'intersection', 'intersection_update', 'isdisjoint',
'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update']
|-- add(新元素) # 添加新的元素
|-- clear() # 清空集合
|-- copy() # 浅拷贝set
|-- difference() # 求两个集合的差集
|-- union # 求两个集合的并集
|-- intersection # 求两个集合的交集
|-- remove() # 移除元素,如果该元素不存在,则抛出错误
|-- pop() # 随机移除一个元素
|-- discard() # 移除元素,如果该元素不存在,则什么都不做
tuple(元组):
不可变数据类型,类似于其他编程语言中的枚举类型
代表一组固定不变的
|-- index(元素) # 返回元素的下标索引
|-- count(元素) # 统计某个元素在列表中的数量
dict(字典):
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
访问字典里的值:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "tinydict['Name']: ", tinydict['Name']
print "tinydict['Age']: ", tinydict['Age']
以上实例输出结果:
tinydict['Name']: Zara
tinydict['Age']: 7
修改字典:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新
tinydict['School'] = "RUNOOB" # 添加
print "tinydict['Age']: ", tinydict['Age']
print "tinydict['School']: ", tinydict['School']
以上实例输出结果:
tinydict['Age']: 8
tinydict['School']: RUNOOB
删除字典元素:
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键是'Name'的条目
tinydict.clear() # 清空字典所有条目
del tinydict # 删除字典
print "tinydict['Age']: ", tinydict['Age']
print "tinydict['School']: ", tinydict['School']
但这会引发一个异常,因为用del后字典不再存在