Python 教程之控制流(4)Python 中的循环技术

简介: Python 教程之控制流(4)Python 中的循环技术

Python 在各种顺序容器中通过某些内置函数支持各种循环技术。这些方法主要在竞争性编程中非常有用,在各种需要特定技术的项目中也非常有用,这些项目需要使用循环来维护代码的整体结构。由于不需要声明我们在传统循环方法中声明的额外变量,因此节省了大量时间和内存空间。

它们在哪里使用?

不同的循环技术主要在我们不需要实际操作整个容器的结构和顺序的地方很有用,而只是打印单个使用实例的元素,容器中不会发生就地更改。这也可以在实例中使用以节省时间。

使用 Python 数据结构的不同循环技术是:

方式 1:使用 enumerate():  enumerate() 用于循环打印索引号以及该特定索引中存在的值的容器。

# 演示 enumerate() 工作的 python 代码
for key, value in enumerate(['The', 'Big', 'Bang', 'Theory']):
  print(key, value)

输出:

0 The
1 Big
2 Bang
3 Theory

# 演示 enumerate() 工作的 python 代码
for key, value in enumerate(['Geeks', 'for', 'Geeks',
              'is', 'the', 'Best',
              'Coding', 'Platform']):
  print(value, end=' ')

输出:

csharp

Geeks for Geeks is the Best Coding Platform

方式 2:使用 zip():  zip() 用于组合 2 个相似的容器(list-list 或 dict-dict)按顺序打印值。循环只存在到较小的容器结束。可以在此处找到 zip() 和 enumerate() 的详细说明。

例子

# 演示 zip() 工作的 python 代码
# 初始化列表
questions = ['name', 'colour', 'shape']
answers = ['apple', 'red', 'a circle']
# 使用 zip() 组合两个容器并打印值
for question, answer in zip(questions, answers):
  print('What is your {0}? I am {1}.'.format(question, answer))

输出:

css

What is your name?  I am apple.
What is your color?  I am red.
What is your shape?  I am a circle.

方式 3:使用 iteritem():   iteritems() 用于遍历字典,顺序打印字典键值对,在 Python 3 版本之前使用。

方式 4:使用 items():  items() 在字典上执行与 iteritems() 类似的任务,但与 iteritems() 相比有一定的缺点。

  • 非常耗时。在大型词典上调用它会消耗大量时间。
  • 它需要大量的内存。有时在字典上调用时会占用双倍的内存。

示例 1:

# 演示 items() 工作的 python 代码
d = {"geeks": "for", "only": "geeks"}
# iteritems() 在 python3 中重命名为 items() 使用 items 打印字典键值对
print("The key value pair using items is : ")
for i, j in d.items():
  print(i, j)

输出:

The key value pair using iteritems is : 
geeks for
only geeks

示例 2:

# 演示 items() 工作的 python 代码
king = {'Akbar': 'The Great', 'Chandragupta': 'The Maurya',
    'Modi': 'The Changer'}
# 使用项目打印字典键值对
for key, value in king.items():
  print(key, value)

输出:

Akbar The Great
Chandragupta The Maurya
Modi The Changer

方式 5:使用 sorted():  sorted() 用于打印容器的排序顺序。它不对容器进行排序, 而只是按 1 个实例的排序顺序打印容器。可以结合使用set() 来删除重复的事件。

示例 1:

# 演示 sorted() 工作的 python 代码
# 初始化列表
lis = [1, 3, 5, 6, 2, 1, 3]
# 使用 sorted() 以排序顺序打印列表
print("The list in sorted order is : ")
for i in sorted(lis):
  print(i, end=" ")
print("\r")
# 使用 sorted() 和 set() 以排序顺序打印列表 使用 set() 删除重复项。
print("The list in sorted order (without duplicates) is : ")
for i in sorted(set(lis)):
  print(i, end=" ")

输出:

The list in sorted order is : 
1 1 2 3 3 5 6 
The list in sorted order (without duplicates) is : 
1 2 3 5 6

示例 2:

# 演示 sorted() 工作的 python 代码
# 初始化列表
basket = ['guave', 'orange', 'apple', 'pear',
    'guava', 'banana', 'grape']
# 使用 sorted() 和 set() 以排序顺序打印列表
for fruit in sorted(set(basket)):
  print(fruit)

输出:

apple
banana
grape
guava
guave
orange
pear

方式 6:使用 reversed():  reversed() 用于以相反的顺序打印 容器的值。它不反映对原始列表的任何更改

示例 1:

# 演示 reversed() 工作的 python 代码
# 初始化列表
lis = [1, 3, 5, 6, 2, 1, 3]
# 使用 reversed() 以相反的顺序打印列表
print("The list in reversed order is : ")
for i in reversed(lis):
  print(i, end=" ")

输出:

倒序的列表是:
3 1 2 6 5 3 1

示例 2:

# 演示 reversed() 工作的 python 代码
# 使用 reversed() 以相反的顺序打印
for i in reversed(range(1, 10, 3)):
  print(i)

输出:

7 
4 
1
  • 这些技术可以快速使用并减少编码工作。for、while 循环需要改变容器的整个结构。
  • 这些循环技术不需要对容器进行任何结构更改。他们有关键字来表达使用的确切目的。然而,for、while 循环不能做出任何预先预测或猜测,即不容易一眼就理解其目的。
  • 循环技术使代码比使用 for & while 循环更简洁。


目录
相关文章
|
13天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
41 4
|
5天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
10天前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
10天前
|
数据安全/隐私保护 Python
Python循环语句
【10月更文挑战第7天】
|
16天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
45 4
|
9天前
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
31 0
|
13天前
|
数据挖掘 计算机视觉 Python
基于Python的简单图像处理技术
【10月更文挑战第4天】在数字时代,图像处理已成为不可或缺的技能。本文通过Python语言,介绍了图像处理的基本方法,包括图像读取、显示、编辑和保存。我们将一起探索如何使用PIL库进行图像操作,并通过实际代码示例加深理解。无论你是编程新手还是图像处理爱好者,这篇文章都将为你打开一扇新窗,让你看到编程与创意结合的无限可能。
|
16天前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
46 0
|
9天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!