Python学习笔记
一、collection模块
1.Counter
用于计数:most_common函数
2.defaultdict
defaultdict 用例
>>>from collectionsimport defaultdict
>>> s = [('yellow',1), ('blue',2), ('yellow',3), ('blue',4), ('red',1)]
>>> d = defaultdict(list)>>>for k, vin s:... d[k].append(v)...
>>> d.items()
dict_items([('blue', [2,4]), ('red', [1]), ('yellow', [1,3])])
3.namedtuple
>>> Point = namedtuple('Point', ['x','y'])# 定义命名元组
二、map函数(对序列进行同样函数操作)
1.map() 函数语法:
map(function, iterable, ...)
2.参数
function -- 函数,有两个参数
iterable -- 一个或多个序列
3.用例
>>>def square(x) : # 计算平方数...
return x ** 2...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
三、xrange函数
xrange(start, stop[, step]) 起点,终点,步长
四、isinstance() 函数
isinstance() 函数用来判断一个对象是否是一个已知的类型,类似 type()。
1.用例
isinstance(object, classinfo)
object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
五、join函数和format函数
六、os.walk函数
1.使用
os.walk的函数声明为:
walk(top, topdown=True, onerror=None, followlinks=False)
参数
top 是你所要便利的目录的地址
topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)
onerror 需要一个 callable 对象,当walk需要异常时,会调用
followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)
os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。
每次遍历的对象都是返回的是一个三元组(root,dirs,files)
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
七、folder内按顺序读取文件代码:
self._images=[]
for _, _, files in os.walk(self.seqdir):
for file in files:
if file.endswith('jpg') or file.endswith('png'):
self._images.append(file)
self._images.sort(key= lambda x:int(x[:-4]))
#最后一行写法很好
我们想先排序列表list中元素的第一个关键字,然后在第一个元素的基础上排序按第二个关键字进行排序,看结果:
>>> list = [('d',3),('a',5),('d',1),('c',2),('d',2)]
>>> print sorted(list, key = lambda x:(x[0],x[1]))
[('a', 5), ('c', 2), ('d', 1), ('d', 2), ('d', 3)]