python中的几种遍历列表的方法比较
python的内容非常丰富,给我们带来的便利很多,很多事情的表达方法有很大的多样性,比如我经常需要遍历一个列表,取它的下标和值,这个时候就有很多方法需要取舍一下才行。
for循环遍历
l = [1,2,3,4,5,6,7]
for i in range(len(l)):
print i, l[i]
非常简单,没有学过python的人也可以大致看懂
while循环遍历
l = [1,2,3,4,5,6,7,8]
index = 0
while index < len(l):
print index, l[index]
index++
很有c语言背景的写法,java的也类似的说
index结合for循环遍历
l = [1,2,3,4,5,6,7]
index = 0
for i in l:
print index, i
index += 1
拉链(zip)方法遍历
l = [1,2,,4,5,6,6]
for i ,v in zip(range(len(l)), l):
print i, v
看起来好复杂的说,zip把它的2个参数组合成了list长度的元组列表,其实每个元组的值是2个列表中的每一个,所以它叫做拉链方法
enumerate遍历方法
l = [1,2,3,4,4,4,4]
for i, v in enumerate(l):
print i , v
非常容易理解而是是懒加载的方法,其中用到了python中的生成器,我们也可以实现自己的enumerate方法,用同样的for循环方式进行调用
比如说
def my_enumerate(l):
length= len(l)
for i in range(length):
yield i , l[i]
调用方法和上面完全一样,你也可以写一个自动生成斐波那契的函数,比如这样写就可以自动获取前n项斐波那契数列
def fib(max):
index = 0
a, b = 0, 1
while index < max:
yield index, a
a, b= b, a+b
index +=1
for i , v in fib(10):
print i , b
这样调用非常方便,易读而且有懒加载的功能,其实就相当于开启一个协程。
python中的几种遍历列表的方法比较的更多相关文章
- Python中的四种交换数值的方法
交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的. 今天这个面试是问大家有几种办法来实现交换两个变量的值. 在没开始看具体答案前,你可以先想想看 下面分别来说说这几种方法 方法一 ...
- python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- Python中的三种数据结构
Python中,有3种内建的数据结构:列表.元组和字典.1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.列表中的项目.列表中的项目应该包括在方括号中,这 ...
- 【转】python 三种遍历list的方法
[转]python 三种遍历list的方法 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list ...
- Python中,os.listdir遍历纯数字文件乱序如何解决
Python中,os.listdir遍历纯数字文件乱序如何解决 日常跑深度学习视觉相关代码时,常常需要对数据集进行处理.许多图像文件名是利用纯数字递增的方式命名.通常所用的排序函数sort(),是按照 ...
- 简单谈谈Python中的几种常见的数据类型
简单谈谈Python中的几种常见的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等 ...
- python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- Python 中的几种矩阵乘法 np.dot, np.multiply, *【转】
本文转载自:https://blog.csdn.net/u012609509/article/details/70230204 Python中的几种矩阵乘法1. 同线性代数中矩阵乘法的定义: np.d ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
随机推荐
- Java系统变量设置方式
近期碰到一个编码的问题,发现整个平台都是用的GB2312,因此导致webservice调用时有些字不能正常接受. 反编译中间件的源码如下: public static final String nod ...
- [Sequence Alignment Methods] Cross-Recurrent Plot (CRP)
A recurrence plot (RP) is a straightforward way to visualize characteristics of similar system state ...
- LeetCode (85): Maximal Rectangle [含84题分析]
链接: https://leetcode.com/problems/maximal-rectangle/ [描述] Given a 2D binary matrix filled with '0's ...
- hdoj 1728 逃离迷宫
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Java中的 修饰符
java中的修饰符分为类修饰符,字段修饰符,方法修饰符. 根据功能的不同,主要分为以下几种. 1.权限访问修饰符 访问权限的控制常被称为具体实现的隐藏 把数据和方法包进类中,以及具体实现的隐藏,常共 ...
- mysql 循环插入100w
use md5db; DROP PROCEDURE if exists myFunction; delimiter $$ CREATE PROCEDURE myFunction() BEGIN DEC ...
- Lucene 4.x实践1
在Lucene 3.x时代,<Lucene In Action>是一本相当不错的参考书,书中详细介绍了Lucene各种高级使用技术,对于开发者来说非常实用.但是近期Lucene升级到了4. ...
- Android Bitmap开发之旅--基本操作
1 Bitmap加载方式 在介绍Bitmap--OOM 异常时,首先介绍一下Bitmap有哪几种加载方式.通常Bitmap的加载方式有Resource资源加载.本地(SDcard)加载.网络加载等加载 ...
- TCP/IP源码(59)——TCP中的三个接收队列
http://blog.chinaunix.net/uid-23629988-id-3482647.html TCP/IP源码(59)——TCP中的三个接收队列 作者:gfree.wind@gmai ...
- Meth | 安装Linux Mint 18以后grub2 win10启动引导项丢失??!!
进入mint,打开终端输入:sudo update-grub2