15 Python小白基础非进阶教程——控制结构之集合与迭代器

在上一篇教程中,我们讨论了Python中的控制结构,尤其是循环语句。今天,我们将继续深入探索控制结构的另一个方面:集合与迭代器。集合与迭代器是Python提供的一种高效的数据处理方式,它们在处理数据时极大地提高了代码的可读性和效率。在开始之前,让我们先简单了解一下集合和迭代器的基本概念。

集合

在Python中,集合是一个无序且不重复的元素组合。集合的定义使用大括号 {} 或者 set() 函数来创建。集合中的元素可以是任何不可变的数据类型,比如数字、字符串和元组。

创建集合

我们可以通过几种不同的方法来创建集合:

1
2
3
4
5
6
7
8
9
# 使用大括号
fruits = {'apple', 'banana', 'cherry'}

# 使用set()函数
numbers = set([1, 2, 3, 4, 5])

# 查看创建的集合
print(fruits) # 输出: {'banana', 'apple', 'cherry'}
print(numbers) # 输出: {1, 2, 3, 4, 5}

集合的基本操作

集合具有很多基本操作,如添加、删除、并集、交集等。

  • 添加元素:使用 add() 方法。
1
2
fruits.add('orange')
print(fruits) # 输出: {'banana', 'orange', 'apple', 'cherry'}
  • 删除元素:使用 remove()discard() 方法。
1
2
3
4
fruits.remove('banana')  # 如果元素不存在,会抛出异常
print(fruits) # 输出: {'orange', 'apple', 'cherry'}

fruits.discard('banana') # 如果元素不存在,不会抛出异常
  • 集合的并集和交集
1
2
3
4
5
6
7
8
9
10
set_a = {1, 2, 3}
set_b = {3, 4, 5}

# 并集
union_set = set_a | set_b
print(union_set) # 输出: {1, 2, 3, 4, 5}

# 交集
intersection_set = set_a & set_b
print(intersection_set) # 输出: {3}

集合的灵活性和高效性使得它非常适合处理不重复的数据集合,在数据分析和科学计算等领域有广泛的应用。

迭代器

迭代器是Python中遍历集合的一种方式。任何实现了 __iter__()__next__() 方法的对象都可以被称为迭代器。我们可以使用 for 循环来遍历迭代器。

创建迭代器

我们可以使用 iter() 函数将集合转换为迭代器。

1
2
3
4
5
6
7
8
9
# 创建一个列表
my_list = [1, 2, 3, 4, 5]

# 创建迭代器
my_iterator = iter(my_list)

# 使用next()获取下一个值
print(next(my_iterator)) # 输出: 1
print(next(my_iterator)) # 输出: 2

使用for循环遍历迭代器

for 循环可以自动处理迭代器的构建和获取下一个值。

1
2
for number in my_list:
print(number) # 输出: 1, 2, 3, 4, 5(各占一行)

生成器——简化迭代器

生成器是迭代器的一种简化写法,使用 yield 关键字来生成值,允许我们逐个产生值,而不是一次性生成所有值。

1
2
3
4
5
6
7
8
9
10
def my_generator():
for i in range(5):
yield i

# 创建生成器对象
gen = my_generator()

# 使用for循环遍历生成器
for value in gen:
print(value) # 输出: 0, 1, 2, 3, 4(各占一行)

总结

在本篇教程中,我们深入探讨了Python中的集合与迭代器。集合为我们提供了一种高效且灵活的数据存储方式,而迭代器则让我们能够轻松遍历这些数据。掌握集合与迭代器的使用,将使得你在编写Python程序时更加高效。在下一篇教程中,我们将开启新的主题,讨论如何定义函数,这将是你Python编程旅程中又一重要的里程碑。希望你在这个过程中能不断实践,深入理解这些概念。

15 Python小白基础非进阶教程——控制结构之集合与迭代器

https://zglg.work/python-zero/15/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论