欢迎访问宙启技术站
智能推送

Python中的字典(dict)和集合(set)的使用方法详解

发布时间:2023-06-11 01:41:50

Python中字典和集合是两种非常常用的数据类型,本文将详细介绍它们的使用方法。

一、字典(dict)

字典是Python中一种可变的、无序的、键值对映射的数据结构,可用于存储任意可哈希类型的对象。

1. 创建字典

创建字典有多种方法,主要有两种:

(1) 直接使用{}创建空字典或者使用{key: value, …}来创建一个有初始值的字典。

例如:

empty_dict = {}

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}

(2) 使用dict()函数,可以用zip()函数将两个列表打包成一个字典,也可以通过关键字参数来创建字典。

例如:

# zip()函数
keys = ['Tom', 'Jerry', 'Kitty']
values = [123, 456, 789]
zip_dict = dict(zip(keys, values))

# 关键字参数
kw_dict = dict(a=1, b=2, c=3)

2. 字典基本操作

(1) 读取字典

使用方括号并给出键,就可以获取字典中对应的值。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
print(tel_dict['Tom'])

(2) 更改字典

可以通过赋值来更改字典中的值。

例如:

tel_dict['Tom'] = 111
print(tel_dict)

(3) 增加字典

同样使用方括号,新建或修改键来增加字典。

例如:

tel_dict['Mary'] = 345
print(tel_dict)

(4) 删除字典

使用del关键字删除字典中的键值对或整个字典。

例如:

del tel_dict['Kitty']
print(tel_dict)

del tel_dict
print(tel_dict)   #NameError: name 'tel_dict' is not defined

# 清空字典
tel_dict.clear()
print(tel_dict)

3. 字典方法

(1) keys()

返回一个由字典中所有键组成的列表。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
keys_list = list(tel_dict.keys())    #获取所有键组成列表

(2) values()

返回一个由字典中所有值组成的列表。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
values_list = list(tel_dict.values())    #获取所有值组成列表

(3) items()

返回一个由字典中所有键值对元组组成的列表。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
items_list = list(tel_dict.items())    #获取所有键值对元组组成列表

(4) get()

根据键获取对应的值,如果键不存在返回给定的默认值。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
value = tel_dict.get('John', '000')   #获取键值,若键不存在,则返回默认值‘000’

(5) pop()

根据键删除对应的键值对,如果键不存在则返回给定的默认值。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
value = tel_dict.pop('John', '000')   #删除键值,若键不存在,则返回默认值‘000’

(6) update()

使用另一个字典或可迭代对象,更新字典中的键值对。

例如:

tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
new_dict = {'Mary': 345, 'John': 678}
tel_dict.update(new_dict)   #更新tel_dict
print(tel_dict)

二、集合(set)

集合中的元素是不可重复的,如果存在,则只会保留一个。

1. 创建集合

使用{}和set()函数都可以创建集合。

例如:

empty_set = set()   #创建空集合

num_set1 = {1, 2, 3}
num_set2 = set([1, 2, 3])

2. 集合基本操作

(1) 添加元素

可以使用add()方法或者update()方法添加元素。

例如:

num_set = {1, 2}
num_set.add(3)
print(num_set)

num_set.update([4, 5])
print(num_set)

(2) 删除元素

使用remove()方法或discard()方法删除元素。

例如:

num_set = {1, 2, 3, 4, 5}
num_set.remove(2)
print(num_set)

num_set.discard(6)   #删除元素6,若元素不存在,则不进行操作

(3) 集合运算

集合支持如下的运算:

并集(|):返回两个集合的并集。

交集(&):返回两个集合的交集。

差集(-):返回两个集合的差集。

对称差集(^):返回两个集合不相交的部分。

例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

union_set = set1 | set2
print('并集:', union_set)

intersect_set = set1 & set2
print('交集:', intersect_set)

diff_set = set1 - set2
print('差集:', diff_set)

symdiff_set = set1 ^ set2
print('对称差集:', symdiff_set)

3. 集合方法

(1) pop()

随机删除集合中的一个元素,并返回该元素。

例如:

num_set = {1, 2, 3, 4, 5}
value = num_set.pop()   #随机删除一个元素,返回该元素的值

(2) clear()

清空一个集合。

例如:

num_set = {1, 2, 3, 4, 5}
num_set.clear() 
print(num_set)

(3) difference()

返回一个包含所有在集合1但不在集合2中的元素的集合。

例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
diff_set = set1.difference(set2)
print(diff_set)

(4) symmetric_difference()

返回两个集合的对称差集,即只在一个集合中出现的元素。

例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
symdiff_set = set1.symmetric_difference(set2)
print(symdiff_set)

以上是Python中字典和集合的基本用法和方法,可以通过实际操作加深理解和熟悉。