字典与集合

1. 引言

在编程中,数据结构是组织和存储数据的方式。字典和集合是两种非常常见且有用的数据结构。字典允许我们以键值对的形式存储数据,而集合则用于存储唯一元素的无序集合。掌握这两种数据结构的基本操作和方法,将有助于我们更高效地处理数据。

2. 核心概念讲解

2.1 字典

2.1.1 字典的创建

字典是Python中的一种可变容器模型,可以存储任意类型的对象。字典中的每个元素都是一个键值对,键和值之间用冒号分隔,元素之间用逗号分隔,整个字典用花括号{}括起来。

创建一个字典

mydict = {‘name’: ‘Alice’, ‘age’: 25, ‘city’: ‘New York’}

2.1.2 字典的基本操作

  • 访问元素:通过键来访问字典中的值。

print(mydict[‘name’]) 输出: Alice

  • 修改元素:通过键来修改字典中的值。

mydict[‘age’] = 26
print(my
dict) 输出: {‘name’: ‘Alice’, ‘age’: 26, ‘city’: ‘New York’}

  • 添加元素:通过新的键来添加新的键值对。

mydict[’email’] = ‘alice@example.com’
print(my
dict) 输出: {‘name’: ‘Alice’, ‘age’: 26, ‘city’: ‘New York’, ’email’: ‘alice@example.com’}

  • 删除元素:使用del语句删除键值对。

del mydict[‘city’] print(mydict) 输出: {‘name’: ‘Alice’, ‘age’: 26, ’email’: ‘alice@example.com’}

2.1.3 字典的常用方法

  • keys():返回字典中所有的键。

print(mydict.keys()) 输出: dictkeys([‘name’, ‘age’, ’email’])

  • values():返回字典中所有的值。

print(mydict.values()) 输出: dictvalues([‘Alice’, 26, ‘alice@example.com’])

  • items():返回字典中所有的键值对。

print(mydict.items()) 输出: dictitems([(‘name’, ‘Alice’), (‘age’, 26), (’email’, ‘alice@example.com’)])

  • get():通过键获取值,如果键不存在,返回默认值。

print(mydict.get(‘name’, ‘Unknown’)) 输出: Alice
print(my
dict.get(‘phone’, ‘Unknown’)) 输出: Unknown

  • pop():删除并返回指定键的值。

age = mydict.pop(‘age’)
print(age) 输出: 26
print(my
dict) 输出: {‘name’: ‘Alice’, ’email’: ‘alice@example.com’}

2.2 集合

2.2.1 集合的创建

集合是一个无序且不重复的元素集。集合用花括号{}set()函数创建。

创建一个集合

myset = {1, 2, 3, 4, 5}

2.2.2 集合的基本操作

  • 添加元素:使用add()方法添加元素。

myset.add(6)
print(myset) 输出: {1, 2, 3, 4, 5, 6}

  • 删除元素:使用remove()方法删除元素,如果元素不存在会报错;使用discard()方法删除元素,如果元素不存在不会报错。

myset.remove(3)
print(myset) 输出: {1, 2, 4, 5, 6}

myset.discard(7)
print(myset) 输出: {1, 2, 4, 5, 6}

  • 集合运算:集合支持并集、交集、差集等运算。

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

并集
print(set1 | set2) 输出: {1, 2, 3, 4, 5}

交集
print(set1 & set2) 输出: {3}

差集
print(set1 – set2) 输出: {1, 2}

3. 实例和练习

3.1 实例

实例1:统计单词频率

text = “apple banana apple orange banana apple”

words = text.split()

wordcount = {}

for word in words:

if word in wordcount:

wordcount[word] += 1

else:

wordcount[word] = 1

print(wordcount) 输出: {‘apple’: 3, ‘banana’: 2, ‘orange’: 1}

实例2:去除列表中的重复元素

numbers = [1, 2, 2, 3, 4, 4, 5]

uniquenumbers = list(set(numbers))

print(uniquenumbers) 输出: [1, 2, 3, 4, 5]

3.2 练习

练习1:创建一个字典,存储学生的姓名和成绩,然后计算平均成绩。

students = {‘Alice’: 85, ‘Bob’: 90, ‘Charlie’: 78}

averagescore = sum(students.values()) / len(students)

print(averagescore)

练习2:给定两个集合,找出它们的交集和差集。

seta = {1, 2, 3, 4, 5}

setb = {4, 5, 6, 7, 8}

intersection = seta & setb

difference = seta – setb

print(intersection) 输出: {4, 5}

print(difference) 输出: {1, 2, 3}

4. 总结

在本章中,我们学习了字典和集合这两种重要的数据结构。字典通过键值对的形式存储数据,支持多种操作和方法,如访问、修改、添加、删除元素等。集合则用于存储唯一元素,支持并集、交集、差集等运算。通过实例和练习,我们进一步巩固了这些概念,并学会了如何在实际编程中应用它们。掌握字典和集合的使用,将大大提高我们处理数据的效率和灵活性。

Categorized in: