容器(collection)
|-- list 列表 底层是基于双向链表实现的
|-- set 集合 无序,不重复 hash
|-- tuple 元组
|-- dict 字典
list:
线性表的实现:数组(array)、链表(list)、栈(stack)、队列(queue)(python中没有数组,c才有)
#定义数空组,元素用“,”隔开。
list=[]
#每一个元素都有下标,可以通过下标来取值。
#下标从0开始,到元素个数-1截止。
list=["a","b"]
ans=list[0]
#此时,ans="a"
#列表的遍历要使用循环:
list=["a","b"]
for i in list:
print(i)
#每一次循环都会按顺序拿取元素。
#分别为"a"和"b"。
其他常用操作:
['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
|-- append(元素) # 将元素追加到list的末尾位置
|-- clear() # 清空列表
|-- copy() # 复制对象(浅拷贝对象)
|-- count() # 统计元素在列表中出现的次数
|-- extend() # 将一个列表合并到另外一个列表中
|-- index() # 查找元素在列表中的第一个索引位置,如果不存在,则抛出异常
|-- insert(index, item) # 插入元素,第一个参数是位置
|-- pop([index]) # 根据索引移除元素,如果没有索引,默认移除最后一个
|-- remove(元素) # 根据值移除元素
|-- reverse # 翻转元素的顺序
|-- sort # 排序,只能同类型比较 如果值字符串,是按照ASCII表比较的
集合
无序的、不能重复的 哈希算法
s = {必须有元素}
s = set() # 全局函数
注意:set无序,所以没有下标
常见方法:
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
|-- pop # 随机移除元素
|-- remove #
|-- discard # 尝试着移除元素
|-- intersection 交集
|-- difference 差集
|-- union 并集
元组
元组是()包裹的,特点是固定,不能发生变化的,是不可变类型,有序的数据类型。
tuple1 = tuple((1,2,3)) #创建了一个包括3个元素的元组对象
print(tuple1)
tuple2 = (1,2,3,4,5,6,7,8,9,10)
print(tuple2)
#打印结果
#(1, 2, 3)
#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
#当要创建的元组中只包含一个元素时,必须带逗号。如果不带逗号会将左右括号默认视为运算符。
通过下标访问元素
|-- count()
|-- index()
注意:元组是不可变类型,也就意味着一点元组创建,元素的个数、值都将固定,不能修改、删除等操作
如果子元素是可变类型,那就可以改变着个子元素。
'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop',
'popitem', 'setdefault', 'update', 'values']
|-- clear
|-- copy
|-- get
|-- keys()
|-- values()
|-- items()
|-- pop(key) # 通过key,移除对应的键值对
|-- popitem # LIFO的顺序