美文网首页
python基础2

python基础2

作者: 只喝白开水a | 来源:发表于2018-09-12 09:06 被阅读0次

    一·a=1,b=2,不用中间变量交换 a 和 b 的值

    >>> a=1
    >>> b=2
    >>> a,b=b,a
    >>> print a,b
    2 1
    

    二.

    1 >>>dict()                        # 创建空字典
    2 {}
    3 >>> dict(a='a', b='b', t='t')     # 传入关键字
    4 {'a': 'a', 'b': 'b', 't': 't'}
    5 >>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
    6 {'three': 3, 'two': 2, 'one': 1} 
    7 >>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
    8 {'three': 3, 'two': 2, 'one': 1}
    9 >>>
    

    三.

    l = []
    for i in xrange(10):
    l.append({‘num’:i})
    print l
    

    l = []
    a = {‘num’:0}
    for i in xrange(10):
    a[‘num’] = i
    l.append(a)
    print l
    

    上方代码的结果:

    [{‘num’:0},{‘num’:1},{‘num’:2},{‘num’:3},{‘num’:4},{‘num’:5},{‘num’:6},{‘num’:7},{‘num’:8},
    {‘num’:9}]
    

    下方代码结果:(相当于浅拷贝)

    1. [{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},{‘num’:9},
    {‘num’:9}]
    

    四.4G 内存怎么读取一个 5G 的数据
    方法一:
    可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后在读取后面的 500MB 的数据。
    方法二:
    可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行数切割,可以按照文件大小切割
    五.

    def print_directory_contents(sPath):
    """
    这个函数接收文件夹的名称作为输入参数
    返回该文件夹中文件的路径
    以及其包含文件夹中文件的路径
    """
    # 补充代码
    ------------代码如下--------------------
    import os
    for sChild in os.listdir(sPath):
        sChildPath = os.path.join(sPath, sChild)
        if os.path.isdir(sChildPath):
            print_directory_contents(sChildPath)
        else:
            print(sChildPath)
    

    六.常用的 Python 标准库都有哪些?
    os 操作系统,time 时间,random 随机,pymysql 连接数据库,threading 线程,multiprocessing进程,queue 队列。
    第三方库:
    django 和 flask 也是第三方库,requests,virtualenv,selenium,scrapy,xadmin(后台管理),celery(定时任务),re,hashlib,md5。
    常用的科学计算库(如 Numpy,Scipy,Pandas)。
    七. Python 里面如何生成随机数
    random.random():生成一个 0-1 之间的随机浮点数;
    random.uniform(a, b):生成[a,b]之间的浮点数;
    random.randint(a, b):生成[a,b]之间的整数;
    random.randrange(a, b, step):在指定的集合[a,b)中,以 step 为基数随机取一个数;
    random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,元组等。
    random.shuffle(alist):打乱排好序的列表
    八.输入某年某月某日,判断这一天是这一年的第几天?

    import datetime
    def dayofyear():
        year = input("请输入年份:")
        month = input("请输入月份:")
        day = input("请输入天:")
        date1=datetime.date(year=int(year),month=int(month),day=int(day))
        date2 = datetime.date(year=int(year),month=1,day=1)
        return (date1 - date2 + 1).days
    

    九.map(),reduce(),zip(),filter(),lambda,

    map():
    >>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
    ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    reduce():
    传入一个list L ,返回所有元素乘积
    >>> def prod(L):
    ...     return reduce(lambda x,y:x*y,L)
    
    zip():
    
    >>>a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [4,5,6,7,8]
    >>> zipped = zip(a,b)     # 打包为元组的列表
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(a,c)              # 元素个数与最短的列表一致
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
    [(1, 2, 3), (4, 5, 6)]
    
    filter():
    和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素
    

    name.lower().capitalize():首字母大写其余小写

    十.函数作为返回值、闭包、装饰器
    python2.7闭包问题
    返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    计数器

    def createCounter():
        a = [0]
        def counter():
            a[0] += 1
            return a[0]
        return counter
    c = createCounter()
    

    装饰器,三层装饰器:

    def metric(text):
       def log(fn):
           @functools.wraps(fn)
           def wrapper(*args, **kw):
               start =time.time()
               s = fn(*args, **kw)
               print text
               end =time.time()
               print end -start
               return s
           return wrapper
       return log
    

    十一.程序性能评估

    import random
    import cProfile
    lIn = [random.random() for i in range(100000)]
    cProfile.run('f1(lIn)')
    cProfile.run('f2(lIn)')
    cProfile.run('f3(lIn)')
    

    相关文章

      网友评论

          本文标题:python基础2

          本文链接:https://www.haomeiwen.com/subject/jvvygftx.html