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
    

      

     

      

      

  • 相关阅读:
    获取滚动条卷入高度以及获取内联和外联的方法
    async
    使一个div元素上下左右居中
    .NetCore/ .NetFramework 机制
    Asp.netCore 是用的Socket 吗?
    Asp.netCore 的Startup 不继承接口
    月球
    JWT
    虚数的作用
    C# mailKit 发邮件 简单代码
  • 原文地址:https://www.cnblogs.com/huangxiaohen/p/3866445.html
Copyright © 2011-2022 走看看