page contents

Python中的循环:遍历列表、元组、字典和字符串

在编程中,循环意味着以相同的顺序多次重复同一组计算。想想现实生活中...

什么是循环

在编程中,循环意味着以相同的顺序多次重复同一组计算。

想想现实生活中的情况。你是一位在森林里测量树木的野外生物学家。你选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。接下来,你再选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。然后,你再选一棵树,测量它的直径和高度,把它们写在你的笔记本上,估计它的总体积。

您将不断重复相同的过程,直到示例中的所有树都用完为止。在编程行话中,您将遍历每棵树,并以相同的顺序执行相同的任务集。

回到编程,如果给您一个整数值列表,并要求对每个项进行平方,然后再加5,最后报告结果——这就是一个循环的例子。

attachments-2021-04-y0DXl5ke606579493785f.jpg

我们可以循环什么?

那么我们可以循环什么呢?基本上,任何可迭代的数据类型都可以使用循环进行操作。 Python 中的可迭代对象是以不同数据格式存储的值序列,例如:

  • 列表(例如。[15]10、12、13日)

  • 元组(例如(10,12,13,15))

  • 字典(例如{' Name ': ' Alan ', ' Age ': 25})

  • 字符串 (例如' Data Science ')

循环都有那些类型?

主要有两种循环: for循环 和while循环。其中,for循环是应用于数据科学问题中最常见的一种循环。关键的区别是:

  • for循环对iterable对象中的每个元素进行有限次数的迭代

  • while循环一直进行,直到满足某个条件

attachments-2021-04-sGuziilv6065795eb45cc.jpg

遍历列表

遍历一个列表非常简单。给一个值列表,并要求对每个项做一些事情。假设你有:



 my_list = [1,2,3,4]

然后要求你计算列表中每个值的平方:



 for each_value in my_list:     print(each_value * each_value)Out: 1 4 9 16

类似地,你可以做一些更复杂的循环(例如'嵌套循环')。例如,给你两个列表并要求:

(i)将一个列表的值与另一个列表相乘

(ii)将它们追加到一个空列表中

(iii)打印出新的列表。



 new_list = []list1 = [2, 3, 4] list2 = [4, 5, 6]for i in list1:     for j in list2:         new_list.append(i*j)          print(new_list)Out: [8, 10, 12, 12, 15, 18, 16, 20, 24]

attachments-2021-04-TH7AvJPe6065796fd8596.jpg

遍历元组

遍历元组可能会有点复杂,这取决于元组的结构和要完成的任务。

让我们在一个列表中存储一些元组,每个元组代表一个类中学生的姓名和年龄:



 students = [('Allie', 22), ('Monty', 18), ('Rebecca', 19)]

现在的任务是:

(i)提取所有的年龄

(ii)将它们存储在一个列表中

(iii)计算平均年龄



 ages = []for i,j in students:     ages.append(j)  avg = sum(ages)/len(ages) print(avg)  Out:  19.666666666666668

这里的每个元组都包含两个条目(姓名和年龄)。即使您对名称不感兴趣,通过i和j,您将指定这两个项目,并要求将项目j (age)追加到一个新的列表中。它被称为“元组拆包”。

遍历字典

Python中的字典是键-值对的集合:字典中的每一项都有一个键和一个相关联的值。一个字典的例子:



 # fruit price dictionary fruit_prices = {"apple": 2.50, "orange": 4.99, "banana": 0.59}

您可以循环遍历这些dictionary元素并执行各种操作。下面是一些例子:

提取字典中的所有键值:



 for i in fruit_prices.keys():     print(i)  Out: apple orange banana

将所有的值存储在一个列表中:



 values = [] for i in fruit_prices.values():     values.append(i) print(values)  Out: [2.5, 4.99, 0.59]

attachments-2021-04-yyOTDhEH6065798a53d6d.jpg

遍历字符串

让我们考虑字符串- " Hello "。它看起来像一个可迭代对象吗?事实上,它是。



 for i in 'Hello':     print(i)  Out: H e l l o

可以使用for循环解包字符串中的每个字符,并对它们执行各种操作。

同样,也可以遍历句子中的每个单词。但是在这种情况下,需要一个额外的步骤来分割句子。



 sent = 'the sky is blue' # splitting the sentence into words sent_split = sent.split() # extract each word with a loop for i in sent_split:     print(i)  Out: the sky is blue


While循环

与for循环类似,while循环重复执行一个代码块——只要条件为真。只有当循环条件为false时,循环才会中止。

while循环的一般结构是这样的:



 i = 0while i <=5:     print(i)     i = i+1   # option to break out of the loop Out: 0 1 2 3 4 5

在上面的每一次迭代中,i的值都被输出到5。在此之后,while循环条件变为false(即i = 6时,i≤5变为false)。



 user_id = 'user101' while True:     user = input('Enter your user ID: ')          if user == user_id:         print("You have entered ", user)          break     else:         print("Enter a valid user ID ")

attachments-2021-04-W5IaIKuU6065799a3b88c.jpg

循环控制:continue, break, pass

有三种所谓的循环控制关键字:continue, break, pass。这些语句改变循环流,并允许程序在触发特定外部条件时退出或跳过部分循环。

Break

如果在循环中存在break语句,则在满足条件时终止循环。



 string = 'hello, there' for i in string:     if i == ',':         break     print(i) Out: h e l l o

在上面的代码片段中,我们要求程序在找到字符串中的逗号并执行下一条语句(打印i)

continue

continue语句简单地跳过一个迭代并继续到下一个迭代,而不是跳出循环。

让我们执行上面相同的代码,但是使用continue关键字。



 string = 'hello, there' for i in string:     if i == ',':         continue     print(i)Out: h e l l o   t h e r e

在这种情况下,如果循环遇到了逗号循环会继续跳过逗号。

Pass

pass不做任何事情,它只是一个还没有写的语句的占位符。



 string = 'hello, there' for i in string:     pass

如果我们没有在那里放入一个pass,它将抛出一个错误消息,其余的代码将不会执行。

总结

本文的目的是直观地了解Python中的for循环和while循环。给出了如何循环遍历可迭代对象的例子,如列表、元组、字典和字符串。在文章的最后,我们通过示例介绍了循环控制语句的概念——break、continue和pass。

attachments-2021-04-Zvn8UxLA6065792d6acb7.jpg

  • 发表于 2021-04-01 15:44
  • 阅读 ( 824 )
  • 分类:Python开发

0 条评论

请先 登录 后评论
小柒
小柒

1474 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1471 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章