当我们在使用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的用法进行了详细的讲解,希望对大家有所帮助。