前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

迭代

作者头像
py3study
发布于 2020-01-15 14:53:35
发布于 2020-01-15 14:53:35
70130
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

如果给定一个list或tuple,可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration) 在Python中,迭代是通过for ... in来完成的 Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上 当使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而无需太关心该对象究竟是list还是其他数据类型 任何可迭代对象都可以作用于for循环,包括自定义的数据类型,只要符合迭代条件,就可以使用for循环

迭代list   迭代list是通过下标完成的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  for x in range(5):
    print(x)

迭代dict

  list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但只要是可迭代对象,无论有无下标,都可以迭代,比如dict   因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    d = {'a': 1, 'b': 2, 'c': 3}
    for key in d:   #默认情况下,dict迭代的是key
        print(key)
    #输出:a 
    #     b
    #     c
        
    for key in d.values(): #如果要迭代value,可用for value in d.values()
        print(key)  
    #输出:1 
    #     2
    #     3
    
    for k, v in d.items():  #如果要同时迭代key和value,可以用for k, v in d.items()
        print(k, v)  
    #输出:a 1 
    #     b 2
    #     c 3

迭代字符串

  由于字符串也是可迭代对象,因此,也可以作用于for循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    for ch in 'ABC':
        print(ch)  
    #输出:A
    #     B
    #     C

判断是否迭代

  通过collections模块的Iterable类型判断对象是否是迭代对象,如果是则说明可以通过for...in进行迭代

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   from collections import Iterable

   print(isinstance('abc', Iterable)) #输出:True,str是否可迭代
   print(isinstance([1,2,3], Iterable)) #输出:True,list是否可迭代
   print(isinstance(123, Iterable)) #输出:False,整数是否可迭代

输出下标并迭代

  Python内置的enumerate函数可把list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   for i, value in enumerate(['A', 'B', 'C']): #for循环里,同时引用了两个变量,在Python里是很常见的
        print(i, value) 
   #输出:0 A
   #     1 B
   #     2 C
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/06/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
3 条评论
热度
最新
遇到问题,不是将问题掩盖起来,而是要实实在在的解决它。
遇到问题,不是将问题掩盖起来,而是要实实在在的解决它。
回复回复点赞举报
感觉海星。Mark
感觉海星。Mark
回复回复点赞举报
代码很详细,O(∩_∩)O谢谢楼主的分享
代码很详细,O(∩_∩)O谢谢楼主的分享
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
重构 - 改善代码的各方面问题
做前端开发有一段时间了,在这段时间里面,对于自己的要求,不仅仅是项目能完成,功能正常使用这一层面上。还尽力的研究怎么写出优雅的代码,性能更好,维护性更强的代码,通俗一点就是重构。这篇文章算是我一个小记录,在此分享一下。该文章主要针对介绍,例子也简单,深入复杂的例子等以后有适合的实例再进行写作分享。如果大家对怎么写出优雅的代码,可维护的代码,有自己的见解,或者有什么重构的实力,欢迎指点评论。
守候i
2018/04/23
1.2K3
重构 - 改善代码的各方面问题
[探索]在开发中尽量提高代码的复用性
相信很多人和我一样,在开发项目的时候,因为项目赶,或者一时没想到等原因。频繁使用 ctrl+c 和 ctrl+v ,导致代码很多都是重复的。这几天,也看了自己以前写的代码,简单的探索了一下,挑选几个实例,分享下如何在特定场景下,保证代码质量前提下,提高代码复用性。
守候i
2019/03/13
6400
[探索]在开发中尽量提高代码的复用性
重构 - 用各种方式优化自己的函数库
最近有几天时间空闲,也是在学怎么写更有可读性的代码,更简单,方便的API。简单来说就是重构方面的内容。今天简单分享下,对以前一个小项目(ecDo,欢迎大家star)的API重构方式,下面的的代码如无说明,都是选取自我的项目中这个文件:ec-do-3.0.0-beta.1.js 中的 ecDo 这个对象(针对不同的重构目的,只列举1-3个代表实例,不一一列出)。如果大家有什么更好的方式,也欢迎在评论区留下您的建议。
守候i
2018/08/22
6140
分享6个对象数组去重的方法
使用 filter() 方法过滤掉重复的元素,使用 findIndex() 方法判断对象是否重复,代码如下:
前端达人
2023/02/17
4.6K0
分享6个对象数组去重的方法
函数式编程概要
函数式编程是一种通过组合纯函数来编写软件的编程范式,它是声明式而非命令式的,其原则是避免共享状态, 改变数据,以及副作用。
宅蓝三木
2024/10/09
1280
收藏好了,JS开发须知道的41个小技巧
链接:https://juejin.im/post/6854573212890562573
coder_koala
2020/11/10
5750
收藏好了,JS开发须知道的41个小技巧
单一职责原则
单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。一个类或者模块只负责完成一个职责(或者功能)。
Yuyy
2022/09/21
4970
[译] 更可靠的 React 组件:单一职责原则
原文摘自:https://dmitripavlutin.com/7-architectural-attributes-of-a-reliable-react-component/#6testableandtested
江米小枣
2020/06/15
1.2K0
个人小结--javascript实用技巧和写法建议
从大学到现在,接触前端已经有几年了,感想方面,就是对于程序员而言,想要提高自己的技术水平和编写易于阅读和维护的代码,我觉得不能每天都是平庸的写代码,更要去推敲,去摸索和优化代码,总结当中的技巧,积极听取别人的建议,这样自己的技术水平会提高的更快。那么今天,我在这里就分享一下关于javascript方面的写作的实用技巧和建议,这些技巧和建议是我平常在开发项目上会用到的,希望能让大家学到知识,更希望能起到一个交流意见的作用,也就是说大家有什么好的技巧或者建议,欢迎分享,或者觉得我的想法存在什么问题,欢迎指出!
守候i
2018/08/22
5560
个人小结--javascript实用技巧和写法建议
01-JavaScript之变量
这个系列的文章主要讲解JavaScript的常见用法,适合于初中级的前端开发人员,也可以对比TypeScript的系列文章来看。 先介绍JavaScript的变量与常见变量的函数,代码如下: //变量常用函数 var i=3.1415926; var ipoint2=i.toFixed(2); console.log("小数点后取两位:"+ipoint2); var i2=i.toPrecision(2); console.log("总共取两位:",i2); var i3=3.9; console.log(
用户1910585
2018/05/04
6450
手摸手,一起整理前端小小小知识
这个文章写的不错,你们去看看吧~ segmentfault.com/a/119000001…
用户8671053
2021/09/19
3040
实例感受-es6的常用语法和优越性
前几天,用es6的语法重写了我的一个代码库,说是重写,其实改动的并不多,工作量不大。在重写完了的时候,就个人总结了一下es6常用的一些常用的语法和比es5优越的方面。下面提到的语法可能也就是es6新特性的10%-20%,但是开发上占了80%左右的。下面的文章,按照es6常用新特性进行分类,文章提及的实例,有些是我代码库的小实例,有些是自己随便编的,大家知道就好!希望可以帮到大家,如果大家觉得文章有什么地方写错了,或者哪里写得不对,欢迎指出!
守候i
2018/08/22
5220
实例感受-es6的常用语法和优越性
单一职责原则
本系列文章从场景代码入手,通过代码review指出当前存在的问题,然后思考改进,最后进行提炼总结,即通过”代码-问题-改进-总结“的方式学习编程模式,感受思考的乐趣,To be a better coder.
数据小冰
2022/08/15
3280
单一职责原则
JavaScript 打怪升级 —— 把业务逻辑当练习题做
开发项目和出没社区有一段时间了,会遇上一些比较有印象业务需求。这些业务需求,可能是自己开发项目遇上的,可能是在社区看到的业务需求,或者其他情况接触到的需求,但是这些业务需求的实现逻辑都值得一写。因为这些业务逻辑可以当做练习题一样,可以给大家练手。也希望大家从这些需求实现的逻辑里面可以能到javascript的相关知识,当然如果大家觉得代码需要怎样优化,或者有什么建议,更好的实现方案,觉得我哪里写错了,或者有觉得可以分享的需求,可以在评论提下!
IT派
2018/08/10
4720
JavaScript 打怪升级 —— 把业务逻辑当练习题做
javascript打怪升级--把业务逻辑当练习题做
开发项目和出没社区有一段时间了,会遇上一些比较有印象业务需求。这些业务需求,可能是自己开发项目遇上的,可能是在社区看到的业务需求,或者其他情况接触到的需求,但是这些业务需求的实现逻辑都值得一写。因为这些业务逻辑可以当做练习题一样,可以给大家练手。也希望大家从这些需求实现的逻辑里面可以能到javascript的相关知识,当然如果大家觉得代码需要怎样优化,或者有什么建议,更好的实现方案,觉得我哪里写错了,或者有觉得可以分享的需求,可以在评论提下!
守候i
2018/08/22
1.3K0
javascript打怪升级--把业务逻辑当练习题做
前端简洁并实用的工具类
本文主要从日期,数组,对象,axios,promise和字符判断这几个方面讲工作中常用的一些函数进行了封装,确实可以在项目中直接引用,提高开发效率.
火狼1
2019/04/17
6400
前端简洁并实用的工具类
32个常考的手写面试题,值得动手练一练
https://juejin.cn/post/6963167124881670152
前端达人
2021/06/16
7940
设计原则 \ 单一职责,让你的代码变的清爽
单一职责是设计原则 SOLD 中的 S ,英文是 Single Responsibility Principle。从名字上看,单一职责字面意思是任务专一,举个例子,如果一位后端程序员只开发后端,就可以说这个人职责单一,但后端程序员既做前端,又开发后端,还要维护服务器,那程序员的职责就不够单一。
霍格沃兹测试开发
2021/03/17
1.3K0
JS基础第二课(函数、对象篇)
JavaScript中的重要功能,是一段代码的集合,这段代码可以在不同地方调用,从而提高JavaScript代码的复用性
申小兮
2023/04/12
5800
JS基础第二课(函数、对象篇)
常用的JavaScript代码块
下面的代码实现了将obj1对象和obj2对象合并到了一起,并且将合并后的值赋值给obj3
用户3880999
2023/04/13
8450
常用的JavaScript代码块
相关推荐
重构 - 改善代码的各方面问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验