当前位置: 首页 > 科技观察

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

时间:2023-03-13 01:03:51 科技观察

什么是循环在编程中,循环意味着以相同的顺序多次重复同一组计算。想想现实生活中的情况。您是一名实地生物学家,正在调查森林中的树木。你挑了一棵树,测量它的直径和高度,把它们记在你的笔记本上,然后估计它的总体积。接下来,你选择另一棵树,测量它的直径和高度,将它们写在你的笔记本上,并估计它的总体积。然后,你再挑一棵树,测量它的直径和高度,把它们写在你的笔记本上,并估计它的总体积。您将不断重复相同的过程,直到用尽示例中的所有树。在编程术语中,您将遍历每棵树并以相同的顺序执行相同的任务集。回到编程,如果给你一个整数值列表并要求对每一项进行平方,加上5,并在最后报告结果——这是一个循环的例子。我们可以循环什么?那么我们可以循环什么呢?基本上,任何可迭代数据类型都可以使用循环来操作。Python中的可迭代对象是以不同数据格式存储的一系列值,例如:list(eg.[15]10,12,13th)tuple(eg(10,12,13,15))dictionary(eg.{'Name':'Alan','Age':25})string(eg'DataScience')有哪些类型的循环?有两种主要类型的循环:for循环和while循环。其中,for循环是应用于数据科学问题的最常见的循环类型。关键区别在于:for循环将可迭代对象中的每个元素迭代有限次while循环一直运行直到满足特定条件为止迭代列表迭代列表非常简单。给出一个值列表,并要求对每个项目做一些事情。假设你有:my_list=[1,2,3,4]然后你被要求对列表中的每个值进行平方:foreach_valueinmy_list:print(each_value*each_value)Out:14916同样你可以做一些更复杂的循环(例如'nested环形')。例如,给你两个列表并要求你:(i)将一个列表的值与另一个相乘(ii)将它们附加到一个空列表(iii)打印出新列表。new_list=[]list1=[2,3,4]list2=[4,5,6]foriinlist1:forjinlist2:new_list.append(i*j)print(new_list)Out:[8,10,12,12,15,18,16,20,24]遍历元组遍历元组可能有点复杂,这取决于元组的结构以及您要完成的任务。让我们在列表中存储一些元组,每个元组代表班级中学生的姓名和年龄:students=[('Allie',22),('Monty',18),('Rebecca',19)]现在任务是:(i)提取所有年龄(ii)将它们存储在列表中(iii)计算平均年龄ages=[]fori,jinstudents:ages.append(j)avg=sum(ages)/len(ages)print(avg)Out:19.666666666666668这里的每个元组包含两个条目(姓名和年龄)。即使您对名称不感兴趣,通过i和j,您也是在指定这两个项目并要求将项目j(年龄)附加到新列表。它被称为“元组拆包”。遍历字典Python中的字典是键值对的集合:字典中的每个项目都有一个键和一个关联的值。字典示例:#fruitpricedictionaryfruit_prices={"apple":2.50,"orange":4.99,"banana":0.59}您可以遍历这些字典元素并执行各种操作。下面是一些例子:提取字典中所有的键和值:foriinfruit_prices.keys():print(i)Out:appleorangebanana将所有的值存储在一个列表中:values=[]foriinfruit_prices.values():values.append(i)print(values)Out:[2.5,4.99,0.59]遍历字符串让我们考虑字符串-“Hello”。它看起来像一个可迭代的对象吗?它的确是。foriin'Hello':print(i)Out:Hello可以使用for循环来解压字符串中的每个字符并对它们执行各种操作。同样,也可以遍历句子中的每个单词。但在这种情况下,需要一个额外的步骤来分割句子。sent='theskyisblue'#splittingthesentenceintowordssent_split=sent.split()#extracteachwordwithaloopforiinsent_split:print(i)Out:theskyisblueWhile循环类似于for循环,while循环重复执行一段代码——只要条件为真。只有当循环条件为假时,循环才会中止。while循环的一般结构是这样的:i=0whilei<=5:print(i)i=i+1#optiontobreakoutoftheloopOut:012345在上面的每次迭代中,i的值输出为5。在此之后,while循环条件变为假(即当i=6时,i≤5变为假)。user_id='user101'whileTrue:user=input('EnteryouruserID:')ifuser==user_id:print("Youhaveentered",user)breakelse:print("EnteravaliduserID")循环控制:continue,break,pass有3个so-称为循环控制关键字:continue、break、pass。这些语句会改变循环流程,并允许程序在某些外部条件被触发时退出或跳过部分循环。break如果循环中有break语句,当条件满足时循环终止。string='hello,there'foriinstring:ifi==',':breakprint(i)Out:hello在上面的代码片段中,我们要求程序在找到字符串中的逗号(printi)后执行下一条语句continuecontinue语句只是跳过一个迭代并继续下一个迭代,而不是跳出循环。让我们执行上面相同的代码,但使用continue关键字。string='hello,there'foriinstring:ifi==',':continueprint(i)Out:hellothere这种情况下,如果循环遇到逗号,则继续跳过逗号继续循环。Passpass什么都不做,它只是一个尚未写入的语句的占位符。string='hello,there'foriinstring:pass如果我们不在那里放一个pass,它会抛出一条错误消息,其余代码将不会执行。小结本文的目的是让大家对Python中的for循环和while循环有一个直观的了解。举例说明如何遍历可迭代对象,例如列表、元组、字典和字符串。在文章的最后,我们通过示例介绍了循环控制语句的概念——break、continue和pass。本文旨在初步概述循环的工作原理。