python-3_函数_匿名函数_正则_

发布时间:2019-08-16 10:29:16编辑:auto阅读(1875)


    L=['a','b','c','d']

    for (offset,item) in enumerate(L):
        print offset,item

    打印的结果:

    0 a
    1 b
    2 c
    4 d


    迭代器:

    for i in range(100):     生成列表

    for i in xrange(100)    迭代器,速度会比range快

    readlines()    xreadlines()

    a=iter(list) 生成迭代器
    a.next()
    节省内存:只记录迭代的开头和结尾,当前位置。
    和函数一起使用,可以使函数中断并保存函数的中断状态,yield,可以减少程序的阻塞

    例子:

    def run():
        print "test1"
        yield 1                #变成迭代器,程序运行到这里会停止跳到外面的执行。yield相当于返回值。
        time.sleep(1)
        print "test2"
        time.sleep(1)
        print "test2"
        time.sleep(1)
        print "test2"
        time.sleep(1)

    task=run()
    task.next()
    print '--do sth else---'
    task.next()        #如果不加本行,就不会执行yield后面的。


    函数:

    函数中可以直接修改全局的列表 字典等复杂的数据类型。

    lambda函数(匿名函数):

    def f(x):
       return x**2    
    g = lambda x:x**2  匿名函数的写法

    print map(f,range(10))   把列表输入函数运算,再返回结果
    print map(lambda x:x**2,range(10))

    sorted()用法:例子是对字典key进行排序(虽然字典是无序的)

    dic1={3:2,4:3,6:9,'a':'test','e':'fff','*':'$'}
    print sorted(dic1.items(),key=lambda x:x[0])
    rgs kargs


    内置函数:

    a=range(10)
    a=iter(a)    #把列表变成了迭代器
    a.next()

    print [i for i in a if a<5]
    filter(lambda x:x*x,a)  选出符合的元素
    a=[1,2,3,4]  b=[5,6,7,8,9,10]
    zip(a,b)
    [(1,5),(2,6),(3,7),(4,8)]
    map(None,a,b)
    [(1,5),(2,6),(3,7),(4,8),(none,9),(none,10)]

    reduce(lambda x,y:x+y,a)

    序列化:
    硬盘上只能存字符串或者二进制,因此不能存字典,列表等。
    pickle 只是python中使用的序列化类型。

    pickle.dump(对象,文件句柄)  pickle.load()    pickle.dump(dic1,f)
    json.dump()  json.load()

    正则表达式:

    m = re.match("\d",匹配的对象)   match是从开头匹配。
    查看匹配到字符: m.group()           

    re.search()全局查找匹配

    re.findall() 查找所有匹配到的
    re.split()  按照符号分割
    re.sub('\d',"|",字符对象)   把梳子全部替换成|
    re.sub('\d',"|",字符对象,count=2)  只替换前两个

    模块的创建和导入:

    if __name__=='__main__'   主动执行会执行,导入不执行

    常用模块:
    Import sys
    Sys.path
    Sys.path
    Sys.exit

    Import os
    os.system('uname')
    Os.mkdir('myDir')
    Os.chdir('~')


关键字