Python学习笔记(1)

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)]

推荐阅读更多精彩内容