Python基础之dict和set的使用详解

  • Post category:Python

Python基础之dict和set的使用详解

在 Python 中,dict 和 set 是非常重要且常用的数据类型,本文将详细讲解它们的使用方法。

dict

dict(即字典),是一种由键-值对组成的无序集合。它的主要特点是通过 key 来快速查找对应的值,因此放入顺序和取出顺序可能不一致,但这并不影响它的使用。

创建字典

创建一个空字典可以使用以下方式:

d = {}

也可以在大括号内添加一组 key-value:

d = {'key1': 'value1', 'key2': 'value2'}

字典的常用操作

  • 获取值

我们可以使用 key 来获取对应的 value:

d = {'key1': 'value1', 'key2': 'value2'}
print(d['key1'])  # 输出 value1

如果 key 不存在,那么会报错,但我们也可以通过 get 方法来获取值:

d = {'key1': 'value1', 'key2': 'value2'}
print(d.get('key3', 'default'))  # 输出 default

这里的第二个参数是默认值,当 key 不存在时会返回这个默认值。

  • 修改值

我们可以通过 key 来修改对应的 value:

d = {'key1': 'value1', 'key2': 'value2'}
d['key1'] = 'new value1'
print(d)  # 输出 {'key1': 'new value1', 'key2': 'value2'}
  • 删除值

我们可以使用 del 来删除一个 key-value:

d = {'key1': 'value1', 'key2': 'value2'}
del d['key1']
print(d)  # 输出 {'key2': 'value2'}

示例

下面的示例展示了如何使用字典来统计一段文本中每个单词出现的次数:

text = 'this is a example for python dict and set'
words = text.split(' ')

word_count = {}
for word in words:
    if word not in word_count:
        word_count[word] = 1
    else:
        word_count[word] += 1

print(word_count)

输出结果为:

{'this': 1, 'is': 1, 'a': 1, 'example': 1, 'for': 1, 'python': 1, 'dict': 1, 'and': 1, 'set': 1}

set

set(即集合),是一种无序的、不重复的元素集合,可以进行交集、并集、差集等操作。

创建集合

创建一个空集合可以使用以下方式:

s = set()

也可以在大括号内添加元素:

s = {1, 2, 3}

集合的常用操作

  • 添加元素

我们可以使用 add 方法来添加一个元素:

s = {1, 2, 3}
s.add(4)
print(s)  # 输出 {1, 2, 3, 4}
  • 删除元素

我们可以使用 remove 方法来删除一个元素:

s = {1, 2, 3}
s.remove(1)
print(s)  # 输出 {2, 3}

如果元素不存在,会报错,但我们也可以使用 discard 方法来删除元素:

s = {1, 2, 3}
s.discard(4)
print(s)  # 输出 {1, 2, 3}

这里不会报错,因为元素不存在。

  • 集合运算

可以使用 &、|、- 来进行交集、并集、差集等运算:

s1 = {1, 2, 3}
s2 = {3, 4, 5}

print(s1 & s2)  # 输出 {3}
print(s1 | s2)  # 输出 {1, 2, 3, 4, 5}
print(s1 - s2)  # 输出 {1, 2}

示例

下面的示例展示了如何使用集合来统计一段文本中出现的不同单词数:

text = 'this is a example for python dict and set'
words = text.split(' ')

word_set = set(words)
print(len(word_set))  # 输出 9

总结

本文详细讲解了 Python 中 dict 和 set 的使用方法,包括创建、常用操作和示例等。掌握了这两种数据类型的使用,将对 Python 编程非常有帮助。