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

开发 后端
什么是循环?在编程中,循环意味着以相同的顺序多次重复同一组计算。

 什么是循环

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

[[390921]]

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

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

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

我们可以循环什么?

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

  • 列表(例如。[15]10、12、13日)
  • 元组(例如(10,12,13,15))
  • 字典(例如{' Name ': ' Alan ', ' Age ': 25})
  • 字符串(例如' Data Science ')

循环都有那些类型?

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

  • for循环对iterable对象中的每个元素进行有限次数的迭代
  • while循环一直进行,直到满足某个条件

遍历列表

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

my_list = [1,2,3,4]  
  • 1.

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

for each_value in my_list:  
    print(each_value * each_value)Out:  
1  
4  
9  
16  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

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

(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]  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

遍历元组

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

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

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

现在的任务是:

(i)提取所有的年龄

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

(iii)计算平均年龄

ages = []for i,j in students:  
    ages.append(j)  
  
avg = sum(ages)/len(ages)  
print(avg)  
  
Out:   
19.666666666666668  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

 

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

遍历字典

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

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

 

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

提取字典中的所有键值:

for i in fruit_prices.keys():  
    print(i)  
  
Out:  
apple  
orange  
banana  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

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

values = []  
 for i in fruit_prices.values():  
     values.append(i)  
 print(values)  
   
 Out:  
 [2.5, 4.99, 0.59]  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

遍历字符串

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

for i in 'Hello':  
    print(i)  
  
Out:  
H  
e  
l  
l  
o  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

 

可以使用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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

 

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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

 

在上面的每一次迭代中,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 ")  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

 

循环控制: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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

 

在上面的代码片段中,我们要求程序在找到字符串中的逗号并执行下一条语句(打印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  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

 

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

Pass

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

string = 'hello, there'  
for i in string:  
    pass  
  • 1.
  • 2.
  • 3.

 

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

总结

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

本文旨在对循环的工作方式进行初步概述。

责任编辑:华轩 来源: 今日头条
相关推荐

2024-07-11 15:50:36

2024-04-23 14:02:48

Python数据类型字符串

2020-10-20 14:50:26

Python数字字符串

2021-09-06 20:05:47

Python集合对象

2021-05-24 10:24:42

Golang字符串Python

2019-12-16 10:13:16

Python字符串数据

2024-03-12 07:35:39

Python字符串列表

2010-03-22 17:53:50

Python字符Python字符串

2009-07-24 11:12:33

ASP.NET连接字符

2021-03-08 08:23:24

Java字符串截取

2010-03-16 17:14:19

Python字符串

2010-03-16 17:41:14

Python字符串

2010-11-26 13:18:53

MySQL字符串

2010-06-28 15:18:51

SQL Server

2023-09-04 19:15:19

itemPython版本

2021-07-26 00:02:30

Python字符串列表

2021-01-08 15:14:16

Python循环for循环

2023-10-26 12:01:30

Golang字符串

2023-12-15 10:27:01

暴力匹配算法Python字符串

2018-03-21 12:36:21

Python字符串
点赞
收藏

51CTO技术栈公众号