Python中的字典(Dictionary)和集合(Set)是常用的数据类型之一。它们非常灵活,能够快速地存储大量的数据,并且可以通过键值对的方式来进行快速的检索和访问。
一、字典
字典是一种可变的数据类型,它的数据结构类似于映射:每个键值对都由一个键和一个与之对应的值组成。
1. 创建字典
可以使用{}
或dict()
函数来创建一个字典:
# {}创建一个空字典
my_dict = {}
# 或使用dict()函数创建一个空字典
my_dict = dict()
# 创建一个包含键值对的字典
my_dict = {"name": "Lucy", "age": 25}
2. 字典的访问和更新
可以通过键来访问字典中的值,如果该键不存在,则会抛出KeyError异常。
my_dict = {"name": "Lucy", "age": 25}
# 访问字典中的值
print(my_dict["name"]) # 输出 Lucy
# 更新字典中的值
my_dict["age"] = 26
print(my_dict) # 输出 {'name': 'Lucy', 'age': 26}
3. 字典的遍历
可以使用for
循环来遍历字典中的键值对。
my_dict = {"name": "Lucy", "age": 25}
# 遍历字典中的键值对
for key, value in my_dict.items():
print(key, value)
# 输出 name Lucy
# 输出 age 25
4. 字典的推导式
可以使用字典推导式来快速创建一个字典。
# 创建一个包含1~5的平方的字典
my_dict = {n: n**2 for n in range(1, 6)}
print(my_dict) # 输出 {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
5. 示例说明
下面是一个使用字典来统计单词出现次数的示例:
# 统计字符串中单词出现的次数
text = "this is a line of text. it is not a very long text, but it is still a good text."
word_count = {}
# 将字符串分割为单词,并统计出现次数
for word in text.split():
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 输出单词出现的次数
for word, count in word_count.items():
print(word, count)
# 输出:
# this 1
# is 2
# a 3
# line 1
# of 1
# text. 1
# it 2
# not 1
# very 1
# long 1
# text, 1
# but 1
# still 1
# good 1
# text. 1
二、集合
集合是一种无序且不可重复的数据类型,它的元素必须是可哈希(hashable)的,即不可变的数据类型。
1. 创建集合
可以使用set()
函数或{}
创建一个空集合,或者使用set()
函数来创建一个包含元素的集合。
# 创建一个空集合
my_set = set()
# 或者使用{}创建一个空集合
my_set = {}
# 创建一个包含元素的集合
my_set = set([1, 2, 3])
2. 集合的添加和删除
可以使用add()
方法来向集合中添加元素,使用remove()
方法或discard()
方法来删除集合中的元素。
my_set = set([1, 2, 3])
# 向集合中添加元素
my_set.add(4)
print(my_set) # 输出 {1, 2, 3, 4}
# 从集合中删除元素
my_set.remove(1)
print(my_set) # 输出 {2, 3, 4}
3. 集合的运算
可以使用集合的交、并、差、对称差等运算来操作集合。
set1 = set([1, 2, 3])
set2 = set([2, 3, 4])
# 集合的交
print(set1 & set2) # 输出 {2, 3}
# 集合的并
print(set1 | set2) # 输出 {1, 2, 3, 4}
# 集合的差
print(set1 - set2) # 输出 {1}
# 集合的对称差
print(set1 ^ set2) # 输出 {1, 4}
4. 集合的推导式
可以使用集合推导式来快速创建一个集合。
# 创建一个包含1~5的平方的集合
my_set = {n**2 for n in range(1, 6)}
print(my_set) # 输出 {1, 4, 9, 16, 25}
5. 示例说明
下面是一个使用集合来统计单词出现次数的示例:
# 统计字符串中不重复的单词数
text = "this is a line of text. it is not a very long text, but it is still a good text."
# 将字符串分割为单词,并转化为集合
words = set(text.split())
# 输出单词数
print(len(words)) # 输出 13
这里创建了一个包含所有单词的集合,然后直接使用len()
函数来计算集合的大小。这个方法并不能统计单词的出现次数,但是可以用来快速地统计不重复的单词数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python基础入门之字典和集合 - Python技术站