系列文章目录
文章目录
一、元组是什么?
-
Python内置的数据结构之一,是一个不可变序列
-
不变可变序:字符串、元组
不变可变序列:没有增、删,改的操作 -
可变序列:列表、字典
可变序列:可以对序列执行增、删、改操作,对象地址不发生更改 -
为什么要将元组设计成不可变序列
在多任务环境下,同时操作对象时不需要加锁
因此,在程序中尽量使用不可变序列
注意事项: 元组中存储的是对象的引用
a)如果元组中对象本身不可对象,则不能再引用其它对象
b)如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变
二、元组的创建方式
- 直接小括号
t=( 'Python;'hello',90 )
- 使用内置函数tuple()
t=tuple( ('Python','hello’, 90) )
- 只包含一个元组的元素需要使用逗号和小括号,否则将会认为是本身的数据类型,逗号不能省略
t=( 10, )
三、元组的遍历
元组是可迭代对象,所以可以使用for…in进行遍历
t=tuple(('python','hello',9))
for item in t:
print(item)
四、集合是什么
- Python语言提供的内置数据结构
- 与列表、字典—样都属于可变类型的序列
- 集合是没有value的字典,集合中的元素不允许重复,元素无序
五、集合的创建
- 直接{}
s={
'Python', 'hello' ,90}
- 使用内置函数set()
s=set(range(6))
六、集合的增、删、改、查操作
集合元素的判断操作
- in或not in
集合元素的新增操作
- 调用add()方法,一次添中一个元素
- 调用update()方法至少添中一个元素
集合元素的删除操作
- 调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError
- 调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛霁帇·
- 调用pop()方法,一次只删除一个任意元素
- 调用clear()方法,清空集合
七、集合间的关系
-
两个集合是否相等
可以使用运算符==或!=进行判断 -
一个集合是否是另一个集合的子集
可以调用方法issubset进行判断
B是A的子集 -
一个集合是否是另一个集合的超集
可以调用方法issuperset进行判断
A是B的超集 -
两个集合是否没有交集
可以调用方法isdisjoint进行判断
集合的数学操作
- 交集
intersection()与 & 等价,交集操作 - 并集
union() 与 | 是等价,并集操作 - 差集
difference() 与 - 是等价, - 对称差集
集合的生成式
用于生成集合的公式,元组是不可变序列,没有生成式
{
i for i inrange(1,10)}
- 将{}修改为[]就是列表生成式
- 没有元组生成式
总结
list可用方法:求长度len() 添加元素append() 删除元素pop()
不可变元素就没有append(),insert()这些方法。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
dict就相当于其他语言中的map
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
- 正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象
- 要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key