正文
python遍历类函数 python遍历列表的两种方法
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
python生成器多次遍历(一)------复制生成器
当python中的生成器被完整遍历一次后,就无法再次遍历。
我们希望享有生成器迭代占用内存小的特性,又希望这个生成器能被遍历多次。
方案之一是使用函数 itertools.tee 来复制生成器
语法: generator1, generator2 = itertools.tee(generator, n=2)
generator是需要复制的生成器, n是复制出生成器个数,默认为2。
我们为了生成器能多次遍历,可以这样写:
generator, copy_generator = itertools.tee(generator, 2)
然后遍历copy_generator,保存的generator可以再次复制。
1、generator被复制后尽量不要使用
2、如果生成器中迭代的还是生成器,复制最外层生成器,生成器依然只能遍历一次。
下一篇
python生成器多次遍历(二)------创建生成器类
如何利用Python遍历文件夹
1. 基本实现
[root@localhost ~]# cat dirfile.py
import os
path='/tmp'for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file) print fullpath
执行结果如下:
[root@localhost ~]# python dirfile.py
/tmp/yum.log/tmp/pulse-3QSA3BbwpQ49/pid/tmp/pulse-3QSA3BbwpQ49/native/tmp/.esd-0/socket
2. 在上例的基础上传递参数
import os,sys
path=sys.argv[1]for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file) print fullpath
执行方式为:[root@localhost ~]# python dirfile.py /tmp
在这里,sys.argv[1]是接受参数,也可以定义sys.argv[2]接受第二个参数
3. 如何用函数实现
import os,sys
path='/tmp'def paths(path):
path_collection=[] for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file)
path_collection.append(fullpath) return path_collectionfor file in paths(path): print file
4. 如何封装成类
import os,sysclass diskwalk(object): def __init__(self,path):
self.path = path def paths(self):
path=self.path
path_collection=[] for dirpath,dirnames,filenames in os.walk(path): for file in filenames:
fullpath=os.path.join(dirpath,file)
path_collection.append(fullpath) return path_collectionif __name__ == '__main__': for file in diskwalk(sys.argv[1]).paths(): print file
PS:
1 def __init__():函数,也叫初始化函数。
self.path = path可以理解为初始化定义了1个变量。 在后面的def里面调用的时候必须要使用self.path而不能使用path
2 __name__ == '__main__'
模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这种情况下, __name__ 的值将是一个特别缺省"__main__"。上述类中加上__name__ == '__main__'的判断语句,可以直接在终端环境下执行python dirfile.py /tmp进行测试,不必非得在交互式环境下导入模块进行测试。
enumerate python用法
enumerate python用法具体如下:
enumerate函数用于遍历序列中的元素以及它们的下标,多用于在for循环中得到计数,enumerate参数为可遍历的变量,如字符串,列表等。
一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写:但是这种方法有些累赘,使用内置enumerrate函数会有更加直接,优美的做法。
enumerate函数说明
函数原型:enumerate(sequence,start=0])。功能:将可循环序列sequence以start开始分别列出序列数据和数据下标,即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标。存在一个sequence。
什么是Python
Python是一种广泛使用的解释型、高级和通用的编程语言。Python由荷兰数学和计算机科学研究学会的Guido van Rossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。
python遍历类函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python遍历列表的两种方法、python遍历类函数的信息别忘了在本站进行查找喔。