zoukankan      html  css  js  c++  java
  • 没准在笔试里可以用的到(持续更新中)

    1.计算阶乘

      通常你是这样写: 

    def func(n):
    	return n<2 and 1 or n*func(n-1)
    reduce (lambda x,y:x*y,range(1,n))    #简单多了?高大上了?

      

    2.写(读)文件:

    f=open(name,'w')
    f.write(data)
    f.close()
    

    也可以这样:

    with open(name,'w') as f:
        f.write(data)    #不用关闭文件!
    

    3.python 的私有:

      想私有方法或者私有变量:方法或变量名前加'__': def __myfunc()    __color = ''

      "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
      "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

    4.遍历目录:

    import os.path
    def Vist(arg,dirname,names):
        for filepath in names:
          print os.path.join(dirname,filepath)
     
    path ='xxxx' 目录路径
    os.path.walk(path,Vist,())  #Vist 回调函数  先遍历顶级目录,在遍历目录中文件
    

    5.1,2,3,4,5的全排列

    from itertools import permutations 
    
    p = list(permutations('12345'))
    

    当然也可以用递归,或者好多好多个for

    递归:

    def perms(elements):
        if len(elements) <=1:
            yield elements
        else:
            for perm in perms(elements[1:]):
                for i in range(len(elements)):
                    yield perm[:i] + elements[0:1] + perm[i:]
    for item in list(perms([1,2,3,4,5])):
        print item
    

    6.获取上一级目录

    import os,os.path
    path = os.getcwd()
    parent_path = os.path.dirname(path)
    
    print path
    print parent_path
    

    7.combinations(iterable, r),创建一个迭代器,返回iterable中所有长度为r的子序列(不重复)

    from itertools import *
    for i in combinations([1, 2,3,4], 2):
        print i
    

    8.功能同上,重复

    from itertools import *
    for i in combinations_with_replacement([1, 2, 3,4], 2):
        print i
    

    9.删除列表中相同的字典

    from itertools import *
    l = [{'name':'zhang', 'age':18}, {'name':'zhang', 'age':18}, {'name':'li', 'age':18}]
    for d1, d2 in combinations(l, 2):
        a = list(set(d1.items())^set(d2.items()))
        if len(a) == 0:
            i = l.index(d1)
            l.pop(i)
    
    print l
    

    10.同时遍历两个数组(字典),[过去写爬虫(beautifulSoup)的时候遇到过,同时遍历两类元素的]

    b = [1,2,3]
    a = [4,5,6,7]
    for i, j in zip(a, b):
    	print i, j
    

    11.当你有两个列表,其中一个为空,如果想使用其中一个不空列表的时候

    b = [1,2,3]
    a = []
    for i in set(a) | set(b):
    	print i
    

    12.直接插入到列表某位置:

    a=[1,2,3]
    a.insert(3,1111)
    print a
    

      

     

      

      

  • 相关阅读:
    flex + bison multiple parsers
    Educational Codeforces Round 95 (Rated for Div. 2)
    python学习笔记 day20 序列化模块(二)
    python学习笔记 day20 常用模块(六)
    python 学习笔记 常用模块(五)
    python学习笔记 day19 常用模块(四)
    python学习笔记 day19 常用模块(三)
    python学习笔记 day19 常用模块(二)
    python学习笔记 day19 作业讲解-使用正则表达式实现计算器
    python学习笔记 day19 常用模块
  • 原文地址:https://www.cnblogs.com/huangxiaohen/p/3866445.html
Copyright © 2011-2022 走看看