1.元组 tuple
- 元组是一个不可变的序列(一般当我们希望数据不改变时,使用元组。其他情况基本使用列表)
- 元组不是空元组至少有一个逗号(,) 当元组不是空元组时括号可以省略
my_tuple = 1,2,3,4
- 元组解包将元组当中每一个元素都赋值给一个变量
a,b,*c = my_tuple
#变量和元素没有对等时 *c 获取剩余的,以列表形式返回
2.可变对象
Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型
⽽列表list、字典dict、集合set是可变类型
可变对象中都保存了三个数据
- id 标识
- type 类型
- value 值
3.字典
- 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
- 字典也称之为键值对(key-value)结构
- 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item)
- 创建⼀个有数据的字典 语法 {key:value}
- 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str boo tuple…)
- 字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的
3.1 字典的使用
- 可以通过dict()函数来创建字典
d = dict(name='tom',age=8 )
- 双值子序列
d = dict([('name','tony'),('age',6)])
- len函数:可以获取字典中键值对的个数
- get(key,default):该方法可以根据字典中的key来获取值,如果获取的键不存在,就会返回None
dict.get('grade','该值不存在')
- 修改字典
1.dict.setdefault(key,default)
字典中添加key-value
如果key已经存在字典中,则返回key的值,不会对字典做任何操作
如果key不存在,则向字典中添加这个key,并设置value
2.update()
将其他字典的key-value添加到当前的字典当中
dict1.update(dict2)
3.del
删除字典中的key-value
del dict['name']
4.popitem()
删除字典最后一个key-value 有返回值
删除之后他会将删除的key-value作为返回值返回,返回的是一个元组,元组中有两个元素,第一个元素是key,第二个元素是value。
dict.popitem()
5.pop(key,default)
根据key删除字典中的key-value,会将删除的值返回
dict.pop('name','没有这个key值')
6.copy()
对字典的浅复制:只复制字典本身,如果字典还有个字典是不会进行复制的
3.2 遍历字典
- keys() 返回字典所有的key
for k in d.keys()
#返回key
print(k)
#返回字典的值
print(d[k])
- values() 返回一个序列,该序列中保存有字典的值
for v in d.values():
print(v)
- items() 返回字典所有的项,是一个序列,包含双值子序列
print(d.items())
#或者
for k,v in d.items():
print(k,v)
集合
-
集合表现形式set 集合和列表⾮常相似
不同点
集合只能存储不可变对象
集合中存储的对象是⽆序的
集合不能出现重复元素 -
使⽤{}来创建集合
可以通过set()来将序列和字典转换成集合:- 使用set函数转换时,只包含字典的key
- 不能通过索引来查找元素(可以先转换成列表再查找)
函数 | 作用 |
---|---|
len() | 获取集合中元素的数量 |
add() | 向集合中添加元素 |
update() | 将⼀个集合中的元素添加到另⼀个集合当中 |
pop() | 随机删除集合中的⼀个元素⼀般是删除最后⼀个元素 |
remove() | 删除集合中指定的元素 |
clear() | 清空集合 |