容器
一、什么是容器?
Python中,可包含其他对象的对象,称之为“容器”。容器是一种数据结构。
常用的容器主要划分为两种:序列(如:列表、元祖等)和映射(如:字典)。序列中,每个元素都有下标,它们是有序的。映射中,每个元素都有名称(又称“ 键 ”),它们是无序的。
除了序列和映射之外,还有一种需要注意的容器——“ 集合 ”
二、列表(list(线性表))
1.创建一个列表
代码如下(示例):
ls=[1,2,3,4]//方法1:弱数据类型语言
ls=list()//方法2:使用全局函数list()
ls=lis([1,2,3,4])
2.修改列表
代码如下(示例):
list[1,2,3,5]
list[3]=4
print(list)
//结果为[1,2,3,4]
//用del函数删除
list=[1,2,3,'asfafs',4]
del list[3]
print(list)
//结果为[1,2,3,4]
//用append函数给列表增加元素
list=[1,2,3]
list.append(4)
print(list)
//结果为[1,2,3,4]
3.列表中的许多函数
常用方法:
append() -------- 像列表的尾部追加元素
insert (index,object) ---------- 在列表里指定的位置添加元素
sort() ---------- 列表元素进行排序,整形(从小到大的顺序)
index() --------- 查看列表里某一个元素的下标(如果有多个元素,查找的角标是第一个出现的位置),如果列表里没有元素,会报错
reverse() --------- 将列表元素进行翻转
remove() -------- 通过元素在列表中删除元素,如果元素不存在会报错
count()---------- 统计元素在列表中出现次数
也可以适用于字符串
clear() --------清除列表
copy()------- 浅拷贝 不等价于 =
extend()------ 合并列表,append 的增强版,可以把一段加到列表后面。
pop() ------- 从列表的尾部删除元素,并且返回删除掉的元素,pop(i)------删除角标为i处的元素
若括号中含有下标,则按括号中来进行。删除后的列表将不含删除值。
三、元组
1. 元组的创建方法
t=(1,2,3)//方法1:弱数据类型语言
print(t)
//结果为1,2,3
t=tuple()//方法2:全局函数
t=tuple((元素1,元素2))
2.元组的特点
元组是有序,---------通过下标来获取元素 下标可以是负数 但是不可以通过下标更改元素
元组是一个不可变的类型(虽然元组不可变,但是元组内的元素是可变的)
有无逗号就是计算机识别是否为元组的依据。
3.思考
一般而言,在序列方面的需求,一个列表就足以满足。那么我们接触元组有什么意义吗?
1、元组用作映射中的键。(列表不能)
2、有些内置函数返回元组。(你还有什么理由?)
四、字典(dict)
1.什么是字典
字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符。
不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ }
2.列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。 如’小明’:95,其中我们把’小明’叫键(key),95叫值(value)。
这样唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:‘小明’:95、‘小红’:90、‘小刚’:90
2.字典的基本操作
1.字典的创建
scores = {'小明': 95, '小红': 90}
print(scores)
//结果为{'小明': 95, '小红': 90}
2.字典的修改
scores = {'小明':95,'小红':90,'小刚':90}
scores['小刚']='92'
scores['小美']='85'
print(scores)//结果为{'小明': 95, '小红': 90, '小刚': '92', '小美': '85'}
album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)
//结果为{'王力宏': '心中的日月'}
3.提取字典元素
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])
//结果为95
字典里一些常用的函数方法
[‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘items’, ‘keys’, ‘pop’, ‘popitem’, ‘setdefault’, ‘update’, ‘values’]
clear() --------和列表中的 clear 一样,可以清除字典中的所有项。
copy()--------和列表方法中的 copy 一样,copy执行的是字典的复制。
get() -------- 通过key获取value ,如果没有Key,返回的是none
keys() ------------ 返回字典里所有的Key值
values () ------------------ 返回的所有的值
setdefault ----------- 设置的默认值
items() -------- 返回所有的键值对
pop(key) ------------- 通过key来移除键值对,返回的是key所对应的value,删除字典里没有的key会抛出异常
popitem() ---------- 移除键值对,遵循LIFO,返回值删除的键值对
五、 集合(set)
1.创建集合方法
s=set()
s=set({1,2,3,4})
s={1,2,3,4,5}
//注意:s = {} ------ 表示的字典,也就是说创建集合的时候至少有一个元素
2.集合的特点
集合是无序,不能重复的
3.集合中常见的一些函数方法
clear() -------------------- 清除元素
copy()-------------------- 和列表方法中的 copy 一样,copy执行的是集合的复制
remove()--------------------通过元素在列表中删除元素,如果元素不存在会报错
add() ---------------- 向集合添加元素,如果添加的元素是重复的,不能够添加
difference() --------- 差集
intersection()--------- 交集
union() -------------------并集
update() -------- 更新集合,合并集合
discard()-------- 移除元素,如果元素不存在,不做任何操作