文章目录
- 1.元组
-
- 1.1 元组的拆包
- 1.2 字符串拆包
- 1.3列表拆包
- 2.字典
-
- 2.1 字典简介
- 2.2 语法
- 2.3 字典的使⽤
- 2.4 copy()方法
- 2.5 遍历字典
- 3.集合
-
- 3.1集合简介
- 3.2 集合的运算
1.元组
元组简介
- 元组表现形式tuple
- 元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其他 情况下基本都⽤列表
- 使⽤()创建元素
- 元组不是空元组⾄少有⼀个 逗号(,) 当元组不是空元组时括号可以省略
- 元组解包指将元组当中的每⼀个元素都赋值给⼀个变量
tuple()
my_tuple = (1, 2, 3, 4)
print(my_tuple, type(my_tuple))
print(my_tuple[2])#打印元组中下标为2的值
如果元组不是空元组,那么它至少得有一个逗号
tuple1 = (10,)
print(tuple1, type(tuple1))
1.1 元组的拆包
my_tuple = (1, 2, 3, 4, 5)
a, *b, c, d = my_tuple
print('a', a)
print('b', b)
print('c', c)
print('d', d)
---------------
a 1
b [2, 3]
c 4
d 5
在对一个元组拆包的时候,变量的数量和元组中元素的数量要把持一致,
如果变量和元素不一致,就可以在变量前面加上一个*,这样会获取元组中剩余的元素,以列表的形式返回.
1.2 字符串拆包
s = 'abcdef'
a, b, *c = s
print(a, b, c)
---------------
a b ['c', 'd', 'e', 'f']
1.3列表拆包
list1 = [1, 2, 3, 4]
a, b, *c = list1
print(a, b, c)
2.字典
2.1 字典简介
字典的基本介绍
- 字典属于⼀种新的数据结构称为映射(mapping) 字典的作⽤和列表类似,都是⽤来存储对象的容器
- 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
- 在字典中每⼀个元素都有唯⼀的名字,通过这个唯⼀的名字可以找到指定的元素
- 元素这个唯⼀的名字我们称之为key 通过key可以快速查询value 也可以称之为值
- 字典我们也称之为键值对(key-value)结构 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item)
2.2 语法
- {key:value} 字典的值可以是任意对象
- 字典的键可以是任意的不可变对象(int str bool tuple…) 字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的
{key:value} #可以通过key查询到value这个值, 所以我们也称之为键值对, 每一个键值对我们称呼为一项(item)
{} dict 字典
d = {}
print(d, type(d))
2.3 字典的使⽤
- dict()函数来创建字典
- get(key[,default]) 根据键来获取字典的值。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值80
- update() 将其他字典的key-value添加到当前的字典当中 del 删除字典中的key-value
- popitem() 删除字典最后的⼀个key-value 这个⽅法是有返回值的。删除之后它会将删除的key-value作为返回值返回
- pop(key[,default]) 根据key删除⾃定中的value。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
#当字典中的key有重复的时候,后面的数据会替换前面的数据
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神',
'name': '周慧敏'
}
print(d['name'])
d1 = dict(name='刘亦菲', age=18)
print(d1)
----------------------------------
周慧敏
{'name': '刘亦菲', 'age': 18}
2.4 copy()方法
- copy() ⽅法⽤来对字典进⾏浅复制(浅方法只复制第一层)
- 注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进⾏复制的。
2.5 遍历字典
我们主要可以通过3种⽅式对字典进⾏遍历
- keys() 该⽅法返回字典所有的key
- values() 该⽅法返回⼀个序列 序列中保存有字典的值
- items() 该⽅法会返回字典中所有的项 它返回⼀个序列,序列中包含有双值⼦序列(双值分别是字典中的key和value)
双值子序列
双值序列 [1, 2], (1, 2), 'ab'
子序列 ['a'] 数据类型嵌套
双值子序列 [(1, 2), (3, 4)]
list1 = [(1, 2), (3, 4)]
d = dict(list1)
print(d)
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神'
}
print(len(d))
print('刘亦菲' in d)
print(d['age'])
# get(key, default)
# 如果是没有这个key,返回None,不会报错
# 也可以指定一个默认值,来作为第二个参数,这样获取不到key值的是偶可以返回默认值
print(d.get('xec'), '你是谁')
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神'
}
# 修改字典
# d[key] = value
d['age'] = 16
print(d)
# 没有这个key-value就是添加
d['height'] = 174
print(d)
-----------------------------------
{'name': '刘亦菲', 'age': 16, 'gender': '女神'}
{'name': '刘亦菲', 'age': 16, 'gender': '女神', 'height': 174}
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神'
}
# 添加 setdefault(key, default)
# 如果这个key已经存在于字典中,则返回value值,不会对字典造成影响
# 如果不存在,则向字典中添加key-value
res = d.setdefault('name', '周慧敏')
res = d.setdefault('height', 170)
print(res)
print(d)
-------------------------------------
170
{'name': '刘亦菲', 'age': 18, 'gender': '女神', 'height': 170}
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神'
}
# 添加 update() 将其他的字典当中的key-value添加到当前的字典中
d1 = {1: '1', 2: '2'}
d.update(d1)
print(d)
d = {
'name': '刘亦菲',
'age': 18,
'gender': '女神'
}
#删除
#del 删除字典中的key-value
del d['age']
print(d)
pop(key, default)
res = d.pop('height')
print(res)
print(d)
popitem() #随机删除一个键值对,一般都是删除最后一个
#他会将删除后的键值对作为返回值返回
res = d.popitem()
print(res)
print(d)
clear() #清空字典
3.集合
3.1集合简介
- 集合表现形式set 集合和列表⾮常相似
- 不同点
- 集合只能存储不可变对象
- 集合中存储的对象是⽆序的
- 集合不能出现重复元素
- 使⽤{}来创建集合
- 可以通过set()来将序列和字典转换成集合
- len() 使⽤len()来获取集合中元素的数量
- add()像集合中添加元素
- update()将⼀个集合中的元素添加到另⼀个集合当中
- pop()随机删除集合中的⼀个元素⼀般是删除最后⼀个元素 remove() 删除集合中指定的元素
- clear() 清空集合
s = {}
print(type(s))
s = set()
print(s, type(s))
s = {6, 8}
a, b = s
print(a)
print(b)
print(s)
-------------------------------------
<class 'dict'>
set() <class 'set'>
8 #集合是无序性的
6
{8, 6}
{1}
- 集合只能存储不可变对象
- 集合中存储的对象是无序的
- 集合不能出现重复元素 # 用集合去做去重的操作
s = {1, 2, 3, 'sdfb', (1, 2), 1, 2, 3}
print(s)
list1 = [1, 2, 3, 4, 4, 3, 2, 1]
print(list(set(list1)))
s = set()
# in not in len()
# add() 添加元素进集合
s.add(1)
print(s)
# update() 将一个集合中的元素添加到另一个集合中
s1 = {2, 3, 4, (1, 2)}
s.update(s1)
print(s)
#pop() 随机删除
s.pop()
print(s)
#remove() 指定删除元素
s.remove((1, 2))
print(s)
clear()
3.2 集合的运算
- “&”交集运算
- “|”并集运算
- “-”差集运算
- “^”亦或集
- “<=”检查⼀个集合是否是另⼀个集合的⼦集
- “<” 检查⼀个集合是否是另⼀个集合的真⼦集
- “>=”检查⼀个集合是否是另⼀个集合的超集
- “>”检查⼀个集合是否是另⼀个集合的真超集