2.python中对于序列比较基础的迭代方法。
2017-03-14 19:57
344 查看
一. 并行迭代。
如果并行迭代,首推zip()函数!!!
比如说现在有两个长度一样的列表,这两个列表中,索引位置相同的值是有关联的,现在必须要把这两个表的值同时遍历,如果遇到这种情况,就必须使用并行迭代了。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
假如说name表是每个人的名字,age表是这三个人的年龄,都是按位置对应的,现在需要同时循环迭代,这两个列表。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
for i in range(len(name)):
print "name:%s age:%s" %(name[i],age[i])
输出结果如下:
name:suhaozhi age:22
name:andy age:33
name:tony age:44
这样确实实现了两个列表同时迭代循环,但是有个更简单的办法可以实现这个功能,那就是zip函数。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
for n,a in zip(name,age):
print "name:%s age:%s" %(n,a)
注意!!关于zip函数有两点需要补充:
zip函数可以同时“压缩”n多个序列。
zip函数还可以处理长度不相等的序列,当两个或者多个长度不相等的序列放在一起处理的时候,以最短的序列为准,只要最短的序列用完,就会停止。
下面是例子:
l1 = ['one','two','three']
l2 = [1,2,3,4,5,6]
print zip(l1,l2)
输出结果如下:
[('one', 1), ('two', 2), ('three', 3)]
最短序列用完,就不在往后处理了。
二.按索引迭代。
如果想迭代序列中的对象,同时又想获得当前对象的索引,这时就可以使用enumerate函数。
l1 = ['a','b','c','d','e']
for i in enumerate(l1):
print i
输出结果如下:
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
如果并行迭代,首推zip()函数!!!
比如说现在有两个长度一样的列表,这两个列表中,索引位置相同的值是有关联的,现在必须要把这两个表的值同时遍历,如果遇到这种情况,就必须使用并行迭代了。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
假如说name表是每个人的名字,age表是这三个人的年龄,都是按位置对应的,现在需要同时循环迭代,这两个列表。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
for i in range(len(name)):
print "name:%s age:%s" %(name[i],age[i])
输出结果如下:
name:suhaozhi age:22
name:andy age:33
name:tony age:44
这样确实实现了两个列表同时迭代循环,但是有个更简单的办法可以实现这个功能,那就是zip函数。
name = ["suhaozhi","andy","tony"]
age = [22,33,44]
for n,a in zip(name,age):
print "name:%s age:%s" %(n,a)
注意!!关于zip函数有两点需要补充:
zip函数可以同时“压缩”n多个序列。
zip函数还可以处理长度不相等的序列,当两个或者多个长度不相等的序列放在一起处理的时候,以最短的序列为准,只要最短的序列用完,就会停止。
下面是例子:
l1 = ['one','two','three']
l2 = [1,2,3,4,5,6]
print zip(l1,l2)
输出结果如下:
[('one', 1), ('two', 2), ('three', 3)]
最短序列用完,就不在往后处理了。
二.按索引迭代。
如果想迭代序列中的对象,同时又想获得当前对象的索引,这时就可以使用enumerate函数。
l1 = ['a','b','c','d','e']
for i in enumerate(l1):
print i
输出结果如下:
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
相关文章推荐
- Python中迭代序列的三种基本方法
- python 基础2 编码转换 pycharm 配置 运算符 基本数据类型int str list tupple dict for循环 enumerate序列方法 range和xrange
- 零基础入门学习Python(25):魔法方法(5)定制序列和迭代器
- Python3基础 生成一个可以使用for循环可迭代的类,具有__iter__和__next__的方法的类
- python基础-03-序列类型的常用方法
- Python扩展方法及工具比较
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法
- Python扩展方法及工具比较
- python基础3--面向对象--类变量、实例变量、类方法、静态方法、实例方法
- python中datetime的比较方法使用
- Python基础教程——9魔法方法、属性及迭代器【总结】
- Python基础知识(八)--序列类型_元组
- jQuery基础 -- 处理多个选择结果(each迭代方法)
- Python基础教程学习比较----第二章 列表和元组
- Python基础03 序列
- Python补充01 序列的方法
- Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法
- (2010-08-20).NET中三种集合迭代方法的性能比较
- 对于合并两个LSIT方法比较
- python字典比较方法