python 元组遍历_Python中的for循环:元组、列表、字典的遍历和相互转化

Python for循环可以遍历任何序列的项目,如列表、字符串、元组、字典、集合等序列类型。

11815fe3260e26b342ee54bcf225f9e5.png

语法:

for循环的语法格式如下:

for iterating_var in sequence:statements(s)

流程图:

7c53976bf26d5c787defd635546788c1.png
animals="dog","cat","pig""bird"
for animal in animals:print(animal)#for循环中,print需要缩进

运行结果:

dog
cat
pig
bird

可以看到,使用 for 循环的过程中,迭代变量会先后被赋值,并代入循环体中使用。

Python for循环的具体应用

for 循环进行数值循环

在使用 for 循环时,最基本的应用就是进行数值循环。

比如说,想要实现从 1 到 100 的累加,可以执行如下代码:

print("计算 1+2+...+100 的结果为:")#保存累加结果的变量
result = 0 #逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):result += i
print(result)

运行结果为:

计算 1+2+...+100 的结果为:
5050

上面代码中,使用了 range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。

for循环遍历列表和元组

当用 for 循环遍历 list 列表或者 tuple 元组时,其迭代变量会先后被赋值为列表或元组中的每个元素并执行一次循环体。

下面程序使用 for 循环对列表进行了遍历:

my_list = [1,2,3,4,5]
for ele in my_list:print('ele =', ele)

程序执行结果为:

ele = 1
ele = 2
ele = 3
ele = 4
ele = 5

在Python中,for循环迭代元组与序列差不多,下面程序使用 for 循环对元组进行了遍历:

my_tuple = tuple("23333")
print(my_tuple)
#<<< ('2', '3', '3', '3', '3')
for value in my_tuple:print(value)

程序执行结果如下:

3
2
3
3
3

注意:因为对于字符型的集合,输出集合中的元素的时候,不会保存顺序,所以集合中元素的顺序通常是没有定义的,与序列相同for word in words中的word标识符也是可以随意更改。

for 循环遍历字典

在使用 for 循环遍历字典时,经常会用到和字典相关的 3 个方法,即 items()、keys() 以及 values(),如果使用 for 循环直接遍历字典,则迭代变量会被先后赋值为每个键值对中的键。

my_dic = {'python':"1",'shell':"2",'java':"3"}
for ele in my_dic:print('ele =', ele)

程序执行结果为:

ele = python
ele = shell
ele = java

直接遍历字典,和遍历字典 keys() 方法的返回值是相同的。

循环迭代键:

d = {'x':1,'y':2,'z':3}for key in d.keys():print(key)

除此之外,我们还可以遍历字典 values()、items() 方法的返回值。例如:

循环迭代值:

d = {'x':1,'y':2,'z':3}for value in d.values():print(value)
my_dic = {'python':"1",'shell':"2",'java':"3"}
for ele in my_dic.items():print('ele =', ele)

d.items方法还可以将键-值对作为元组放回,for循环的一大好处就是可以在循环中使用序列解包

程序执行结果为:

ele = ('python', '1')
ele = ('shell', '2')
ele = ('java', '3')

元组,列表,字典之间的转换

元组转换为列表

fruits = ('apple','banana','orange')#元组转换为列表:
list(fruit)#元组不能直接转换为字典,附:
#元组转换为字符串:
fruits.__str__()

列表转换为元组

fruit_list = ['apple','banana','orange']#列表转换为元组:
tuple(fruit_list)#列表不能直接转换为字典,附:
#列表转换为字符串:
str(fruit_list)

字典转换为元组

可以使用函数 tuple() 和 list() 将字典转换为元组和列表,但要注意的是,这里的转换后和之前的元素顺序是不同的,因为字典类似于散列,列表 类似于链表,元组类似于列表只是元素无法改变,所以,要把散列转换为链表而顺序不变是不可行的。但可以借助于有序字典OrderedDict,有序字典是字典的子类,它可以记住元素添加的顺序,从而得到有序的字典。有序字典这里就不深入探讨,给出普通字典的例子参考,代码如下:

fruit_dict = {'apple':1, 'banana':2, 'orange':3}#将字典的key转换为元组:
tuple(fruit_dict)
#将字典的value转换为元组:
tuple(fruit_dict.value())#将字典的key转换为列表:
list(fruit_dict)
#将字典的value转换为列表:
list(fruit_dict.value())#附:
#将字典转换为字符串:
str(fruit_dict)

字符串转换为元组

要将字符串转换为指定的数据结构,那么字符串就必须符合指定数据结构的格式,并借助于 eval() 函数

#将字符串转换为元组:
str = "(1,2,3)"
tuple(eval(str))
#将字符串转换为列表:
str = "(1,2,3)"
list(eval(str))
#将字符串转换为字典:
str = "{'a':1 ,'b',2}"
eval(str)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转oracle 11g(30):ora-03135和plsql乱码问题

22. ORA-03135连接失去联系 如果应用程序时不时地报错“ORA-03135连接失去联系”&#xff0c; 该问题可能与sqlnet.ora设置参数SQLNET.EXPIRE_TIME 有关 在文件sqlnet.ora中&#xff0c;增加一行&#xff0c;单位分钟&#xff1a; SQLNET.EXPIRE_TIME &#xff1d; 10 23. Pls…

计算机论文搜索技巧【一】

如何搜素一个杂志里面的文章并下载&#xff1f;&#xff08;以FSE为例&#xff09; 1.在dblp搜索 FSE 点击相关链接 用google或 google scholar 跳转页面 2.找到类似 source Materials目录 点击查阅相关文档 找到相关信息 3.复制题目&#xff0c;结合dblp与 google scholar找到…

[众包]Eclipse 运行简单亚马逊AMT模板

教程 1.打开esclipe下载AMT 输入 https://aws.amazon.com/eclipse 下载后需要重启 需要自己在亚马逊先注册 填入分配的信息 注册教程 &#xff08;需要信用卡 激活 创建账号 &#xff09; https://docs.aws.amazon.com/zh_cn/AWSMechTurk/latest/AWSMechanicalTurkGetting…

jmap 文件解析_干货分享丨jvm系列:dump文件深度分析

摘要&#xff1a;java内存dump是jvm运行时内存的一份快照&#xff0c;利用它可以分析是否存在内存浪费&#xff0c;可以检查内存管理是否合理&#xff0c;当发生OOM的时候&#xff0c;可以找出问题的原因。那么dump文件的内容是什么样的呢&#xff1f;JVM dumpjava内存dump是jv…

GAN 的推导、证明与实现。

转自机器之心整理的&#xff0c;来自Goodfellow 在 NIPS 2016 的演讲和台大李弘毅的解释&#xff0c;完成原 GAN 的推导、证明与实现。 本文主要分四部分&#xff0c;第一部分描述 GAN 的直观概念&#xff0c;第二部分描述概念与优化的形式化表达&#xff0c;第三部分将对 GAN …

玩转oracle 11g(32):plsql版本低需到配置文件中添加配置

1创建了一个数据库geyao&#xff0c;但是只能显示docare 2plsql版本太低&#xff0c;或者直接修改 C:\app\MDSD\product\11.2.0\dbhome_2\NETWORK\ADMIN 添加配置文件 出现歌谣

[测试智能合约]ganache+metamask+remix

1.谷歌浏览器 下载metamask 2.设置metamask 增加一个7545端口的网络 3.导入账户 从ganache的accounts里面随便找个账户的私钥传进去 4.打开remix 修改environment 5.写好的智能合约编译 remix经常抽风 疯狂来回切换版本号或者换网络 6.黄色按钮Deploy 7.同一页面最下方 打开部署…

Newtonsoft.Json反序列化(Deserialize)出错:Bad JSON escape sequence

使用Newtonsoft.Json反序列化收到的字串为JObject或其它支持的数据模型&#xff0c;有时错误&#xff0c;提示如下&#xff1a; Bad JSON escape sequence: \c. Path idno, line 5, position 34. 甚纳闷之。遂搜索资料&#xff0c;略有小获&#xff0c;其非法分界符所致。合法的…

玩转oracle 11g(33):无监听程序

故意操作删除监听 直接配置监听即可

mysql安装条款_mysql 安装注意

mysql 远程连接赋予权限&#xff1a;GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY datech WITH GRANT OPTION;FLUSH PRIVILEGES;MySQL 5.1采用了基于密码混编算法的鉴定协议&#xff0c;它与早期客户端(4.1之前)使用的协议不兼容。如果你将服务器升级到4.1之上&#xf…

java学习(126):throw向上抛出异常

//throw抛出异常 import java.util.Scanner; public class test66{static class A {void d() throws Exception {int a, b, c;Scanner in new Scanner(System.in);System.out.println("亲输入a的值");a in.nextInt();System.out.println("请输入b的值");…

[Java]集合的小抄 Java初学者必备

文章目录【背景】CollectionsListArrayList优势操作劣势操作LinkedList优势劣势最基本的两种检索集合中的所有对象的方法&#xff1a;CopyOnWriteArrayList补充说明StackMapMap 的常用方法&#xff1a;HashMapLinkedHashMapTreeMapConcurrentHashMapConcurrentSkipListMap补充说…

git之项目上传

git之项目上传 需求&#xff1a;将项目代码上传至github 前期准备&#xff1a; 1.github账号注册 2.安装git环境&#xff0c;可以打开且使用git shell. 3.生成SSH key并与github账号绑定 步骤&#xff1a; 1.进入gitshell 2. 进入到项目指定的目录下&#xff0c;适用git命令初始…

玩转oracle 11g(36):rman备份-控制文件丢失恢复

ORA-00205: error in identifying control file, check alert log for more info 检查oracle的报警日志包含类似报错&#xff1a; ORA-00210: cannot open the specified control file ORA-00202: control file: D:\ORACLE\PRODUCT\10.2.0\ORADATA\DOCARE\C ONTROL01.CTL OR…

[Leedcode][JAVA]第[945]题

【问题描述】 给定整数数组 A&#xff0c;每次 move 操作将会选择任意 A[i]&#xff0c;并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入&#xff1a;[1,2,2] 输出&#xff1a;1 解释&#xff1a;经过一次 move 操作&#xff0c;数组将变为 [1, 2, 3]。…

玩转oracle 11g(37):rman备份-数据库指定文件恢复

.数据库指定数据文件恢复 启动数据库的时候报错 ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: D:\ORACLE\PRODUCT\10.2.0\ORADATA\DOCARE\AP MEDCOMM.DBF ORA-27041: unable to open file OSD-04002: 无法打开文件 O/S-Erro…

并发编程-concurrent指南-原子操作类-AtomicBoolean

类AtomicBoolean 可以用原子方式更新的 boolean 值。有关原子变量属性的描述&#xff0c;请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中&#xff08;如以原子方式更新的标志&#xff09;&#xff0c;但不能用于替换 Boolean。 2.构造函数 1.Atom…

[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]

【问题描述】 大家都知道斐波那契数列&#xff0c;现在要求输入一个整数n&#xff0c;请你输出斐波那契数列的第n项&#xff08;从0开始&#xff0c;第0项为0&#xff09;。 n<39 【解答思路】 1.递归&#xff08;面试避免&#xff09; O(n^2) public class Solution {pu…