Python中dict和set的用法讲解

  • Post category:Python

当我们在使用Python进行开发时,dict和set是两个非常常用的数据结构,它们可以分别用于存储键值对和无序不重复元素的集合。本文将从以下几个方面对Python中的dict和set进行详细讲解,并举例进行说明。

dict的用法

创建字典

在Python中,我们可以使用{key1: value1, key2: value2, ...}的形式创建一个字典,其中key和value分别代表字典中的键和值。比如,我们可以这样创建一个字典:

>>> d = {'name': 'Alice', 'age': 18, 'gender': 'female'}
>>> print(d)
{'name': 'Alice', 'age': 18, 'gender': 'female'}

访问字典中的元素

我们可以通过键访问字典中的值,如果该键不存在,会抛出KeyError异常。如下所示:

>>> print(d['name'])
Alice
>>> print(d['id'])
KeyError: 'id'

我们也可以使用get()方法访问字典中的值,如果该键不存在,返回None或者指定的默认值。如下所示:

>>> print(d.get('name'))
Alice
>>> print(d.get('id'))
None
>>> print(d.get('id', 'not found'))
not found

修改字典中的元素

我们可以通过键直接修改字典中的值,如果该键不存在,会新增一个键值对。如下所示:

>>> d['age'] = 20
>>> print(d)
{'name': 'Alice', 'age': 20, 'gender': 'female'}
>>> d['id'] = 123456
>>> print(d)
{'name': 'Alice', 'age': 20, 'gender': 'female', 'id': 123456}

删除字典中的元素

我们可以使用del关键字删除字典中的键值对,也可以使用pop()方法删除指定键值对并返回相应的值。如下所示:

>>> del d['gender']
>>> print(d)
{'name': 'Alice', 'age': 20, 'id': 123456}
>>> value = d.pop('name')
>>> print(value)
Alice
>>> print(d)
{'age': 20, 'id': 123456}

set的用法

创建集合

在Python中,我们可以使用set()函数或者{value1, value2, ...}的形式创建一个集合,其中集合中的元素必须是不可变类型,比如数字、字符串、元组等。如下所示:

>>> s1 = set()
>>> s2 = {1, 2, 3}
>>> s3 = set([3, 4, 5])
>>> s4 = set('hello')
>>> print(s1, s2, s3, s4)
set() {1, 2, 3} {3, 4, 5} {'o', 'h', 'e', 'l'}

访问集合中的元素

我们可以使用in关键字判断一个元素是否在集合中,也可以使用len()方法获取集合中元素的个数。如下所示:

>>> print(2 in s2)
True
>>> print(len(s3))
3

修改集合中的元素

由于集合中的元素是无序的,所以我们不能直接修改集合中的元素。但是我们可以使用add()方法添加一个元素到集合中,使用remove()方法删除集合中的指定元素。如下所示:

>>> s2.add(4)
>>> print(s2)
{1, 2, 3, 4}
>>> s2.remove(4)
>>> print(s2)
{1, 2, 3}

集合运算

我们可以使用各种运算符对集合进行运算,比如并集、交集、差集等。如下所示:

>>> s1 = {1, 2, 3}
>>> s2 = {2, 3, 4}
>>> print(s1 | s2) # 并集
{1, 2, 3, 4}
>>> print(s1 & s2) # 交集
{2, 3}
>>> print(s1 - s2) # 差集
{1}
>>> print(s2 - s1) # 差集
{4}

示例说明

示例1:统计单词个数

我们可以使用一个dict来统计一段文本中每个单词出现的次数。如下所示:

text = 'hello world, hello python, I love python'
counts = dict()
for word in text.split():
    counts[word] = counts.get(word, 0) + 1
print(counts)

输出结果如下所示:

{'hello': 2, 'world,': 1, 'python,': 1, 'I': 1, 'love': 1, 'python': 1}

示例2:找出两个列表的交集

我们可以使用一个set来找出两个列表的交集。如下所示:

list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
set1 = set(list1)
set2 = set(list2)
result = list(set1 & set2)
print(result)

输出结果如下所示:

[3, 4, 5]

至此,我们对Python中的dict和set的用法进行了详细的讲解,希望对大家有所帮助。