Python中的字典和集合以及其增删改查

2023-01-09 10:38:39

Python004: Python中的字典和集合以及其增删改查

  • 字典(有些类似结构)
# 字典是一种可变容器模型,且可存储任意类型对象
# 键必须是唯一的,但值则不必
# 值可以取任何数据类型,包括用户自定义的类型 
# 键必须是不可修改的数据类型如字符串、数字和元组
# 创建字典
>>>dictionary = {'name': '董照诚','Age':23,'Score':100}

# 添加字典元素
>>>dictionary[712:'实验室']
>>>dictionary
{'name': '董照诚','Age':23,'Score':100,712:'实验室'}

# 删除字典元素
del dictionary['name']
# 删除字典
del dictionary
# 清空但是不删除
dictionary.clear()
  • 字典的相关操作
dict = {}				# 创建一个空的字典
dict = {'name': '董照诚','Age':23,'Score':100}
len(dict) 				# 输出字典的键值对个数
str(dict)				# 输出整个字典的字符串形式
type(dict)				# 查询其类型

# 字典的内置方法
key in dict							# 判断key是否在键内
dict.clear()						# 清空
dict.copy()							# 浅复制
dict.fromkeys(seq[,value]) 			# 以seq序列中的元素为键值,value中的值为新字典的值,默认是None,新字典和原字典没关系
dict.get(key,default = None)		# 获得dict中的对应键的值 
dict.setdefault(key,default = None)	# 设置dict中对应键的值,如果键不再字典中,则添加键值对

>>>dict.items()						# 以元组数组的形式返回
dict_items([('name', '董照诚'), ('Age', 23), ('Score', 100)])
>>>type(dict.items())
<class 'dict_items'>

>>>dict.keys()						# 返回一个由字典的键组成的可迭代对象
dict_keys(['name', 'Age', 'Score'])
>>>list(dict.keys()) # 返回对象转换为列表
['name', 'Age', 'Score']

dict.values()						# 返回一个由值组成迭代器,类似keys()
dict.pop(key)						# 弹出(删除)字典的一个指定键值对,并返回该键值
dict.popitems()						# 弹出(删除)字典的最后一个键值对,并返回该键值对元组
  • 集合 set
# 集合是一个无序的、不重复的序列
# 无序性
# 不重复性
>>>mySet = {'apple','orange','apple','pear','banana'} 
>>>mySet
{'banana', 'apple', 'pear', 'orange'}

>>> # 下面展示两个集合间的运算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b                              # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b                              # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}
  • 集合的增删查
# 添加元素,将x加进集合
mySet.add(x)			# x只可以是单个元素
mySet.update(x)			# x可以是一个序列,注意是无序的添加!!!

# 删除元素
mySet.remove(x)			# x必须存在于集合中
mySet.discard(x)		# x可以不存在于集合中
mySet.pop()				# 随机删除一个元素,返回的是被删除的元素
mySet.remove()			# 删除指定元素
mySet.Clear()			# 清空集合

# 查询
xxx in mySet			# 查询xxx是否在mySet内部
len(mySet)				# 查询mySet的元素个数

# 拷贝
mySet.copy()		

# 集合的计算
mySet.difference(set2)				# 两个集合的差集,mySet中有,但是set2中没有
mySet.difference_update(set2)		# 移除集合mySet中的两个集合都包含的元素
mySet.intersection(set1,set2,....)	# 返回集合的交集
mySet.intersection_update(set1,set2,....)	# 保留mySet中所有元素的交集,和和上一个的区别在于更新mySet与否
mySet.symmetric_difference(set2)	# 返回的是两个集合中不相同的元素的并集
mySet.symmetric_difference_update(set2)# 获取两个集合中不相同的元素的并集更新为mySet
mySet.isdisjoint()					# 判断两个集合是否有交集,返回BOOL值
mySet.issubset(y)					# 判断mySet是否是y的子集
mySet.isuperset(y)					# 判断y是否是mySet的子集
mySet.union(y)						# 返回两个集合的并集
  • 作者:咖啡与乌龙
  • 原文链接:https://blog.csdn.net/qq_40459977/article/details/115621783
    更新时间:2023-01-09 10:38:39