字典类型:
一、什么是字典
字典:是py内置的数据结构之一,与列表一样是一个可变的序列,以键值对的方式存储数据,是一个无序的序列
二、字典的原理
实现原理:Py根据key查找value所在的位置
三、字典的创建
基本语句:1、使用花括号 score = {'张三' :100,'李四' = 98, '王五' = 45 }
2、使用内置函数 dict() dict(name = 'jack' , age = 20)
# 第一种方式
score = {'哈哈':100,'李四': 98,'王五': 95}
print(score)
print(type(score))
# 第二种方式
student = dict(name = 'jack',age = 20)
print(student)# 空字典
d = {}
print(d)
print(type(d))
四、字典的查询操作
字典中元素的获取:1、[] 方法
2、get()方法
print(score['李四'])
print(score.get('戴晗'))
print(score['nana']) #不存在就会报错
print(score.get('娜娜')) #不存在就会显示None
print(score.get('娜娜',0)) #不存在指定一个值输出,代表不存在的默认值
五、字典的增、删、改操作
-
Key 的判断 :
in :指定的key在字典中存在就返回True
not in :指定的key 在字典中不存在就返回True
-
字典元素的删除 del scores['张三']
-
字典元素的新增 score ['nana'] = 90
print('娜娜' in score) #元素的查找
print('娜娜' not in score)
del score['哈哈'] # 元素的删除
print(score)
score['哈哈'] = 99 #元素的增加
print(score)
score.clear() #清空字典
score['哈哈'] = 90 #元素的修改
- 获取字典视图的三个方法
1、keys():获取字典中所有的key
2、values():获取字典中所有value
3、items():获取字典中所有key,value
print(student.keys())
print(student.values())
print(student.items())
print(student.values()) #将所有的key组成的视图转成列表
- 字典元素的遍历
score = {'哈哈':100,'李四': 98,'王五': 95}
for item in score: #获取的是字典当中的keyprint(item,score[item],score.get(item)) #获取字典当中的值
'''
哈哈 100 100
李四 98 98
王五 95 95
'''
字典的特点:
1、字典中所有元素都是一个key - value 对,key不允许重复,value 可以重复
2、字典中的元素是无序的
3、字典中的key必须是不可变对象
4、字典也可以根据需要动态的伸缩
5、字典会浪费较大的内存,是一种使用空间换时间的数据结构
六、字典的推导式
内置函数zip():用于可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元祖组成的列表。
print("-----字典生成式-------")
d = {item : random.randint(1,100) for item in range(4)}
print(d)# 创建两个列表
lst = [1001,1002,1003]
lst2 = ['哈哈','娜娜','滴滴']
d = {key:value for key,value in zip(lst,lst2)}
print(d)
集合类型:
1、py中集合与数学集合的概念一致
2、py中集合是一个无序的不重复元素序列
3、集合中只能存储不可变数据类型
4、py中用 {} 定义
5、与列表,字典一样,都是py中的可变数据类型
一、创建方式
1、使用 {} 直接创建集合
s = {10,20,30}
print(s)
2、使用内置函数 set() 创建集合
s = set('daihan')
print(s) #无序并且不重复 {'h', 'a', 'n', 'i', 'd'}
s2 = set([10,20,30])
print(s2) #{10, 20, 30}
s3 = set(range(1,10))
print(s3) #{1, 2, 3, 4, 5, 6, 7, 8, 9}#创建一个空集合
d = set()#集合的删除
del s3
二、集合类型的操作符
#集合的操作符
A = {10,20,30,40,50,44}
B = {30,11,20,5,50,1,9}
#交集
print(A & B) #{50, 20, 30}
# 并集
print(A | B) #{1, 5, 40, 9, 10, 11, 44, 50, 20, 30}
#差集
print(A - B) #{40, 10, 44} A 除去AB交集剩下的部分
#补集
print(A ^ B) #{1, 5, 40, 9, 10, 11, 44} 就是除去交集剩下的部分
三、集合的相关操作方法
#集合的相关操作
A.add(100)
print(A) #{50, 20, 100, 40, 10, 44, 30}
A.remove(50)
print(A) #{20, 100, 40, 10, 44, 30}
A.clear()
print(A) #set()#集合的遍历
for item in B:print(item)# 1# 50# 20# 5# 9# 11# 30
for index ,item in enumerate(B):print(index,'--->',item)
#0 ---> 1
# 1 ---> 50
# 2 ---> 20
# 3 ---> 5
# 4 ---> 9
# 5 ---> 11
# 6 ---> 30#集合的生成式
s = {i for i in range(1,10)}
print(s) #{1, 2, 3, 4, 5, 6, 7, 8, 9}