• 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 函数名 = lambda 参数 :返回值
  •  pass的作用

    pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句

  • # a == str3 True    ==  ---> 只需要内容相等
    # a is str3 False   is  ---> 只需要内存地址相等
  • https://www.cnblogs.com/abclife/p/11483372.html
  • 谈谈Python的深浅拷贝?以及实现方法和应用场景。

    浅拷贝只是增加了一个指针指向一个存在的地址,

    而深拷贝是增加一个指针并且开辟了新的内存,这个增加的指针指向这个新的内存,
    采用浅拷贝的情况,释放内存,会释放同一内存,深拷贝就不会出现释放同一内存的错误

     

  • Python的可变类型和不可变类型?

    可变数据类型:列表、字典、可变集合

    不可变数据类型:数字、字符串、元组、不可变集合

  • 列举常见的内置函数

    abs()

    返回数字的绝对值

    map

    复制代码
    复制代码
    根据函数对指定序列做映射
    map()函数接收两个参数,一个是函数,一个是可迭代对象,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

    返回值:
      Python2 返回列表
      Python3 返回迭代器

    例子1: def mul(x): return x*x n=[1,2,3,4,5] res=list(map(mul,n)) print(res) #[1, 4, 9, 16, 25]

    例子2:abs() 返回数字的绝对值
    ret = map(abs,[-1,-5,6,-7])
    print(list(ret))
    # [1, 5, 6, 7]
    复制代码
    复制代码

    filter

    复制代码
    复制代码
    filter()函数接收一个函数 f(函数)和一个list(可迭代对象),这个函数 f的作用是对每个元素进行判断,返回 True或 False,
    filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    def is_odd(x):
        return x % 2 == 1
    
    v=list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))
    print(v)  #[1, 7, 9, 17]
    复制代码
    复制代码

    map与filter总结

    复制代码
    复制代码
    # filter 与 map 总结
    # 参数: 都是一个函数名 + 可迭代对象
    # 返回值: 都是返回可迭代对象
    # 区别:
    # filter 是做筛选的,结果还是原来就在可迭代对象中的项
    # map 是对可迭代对象中每一项做操作的,结果不一定是原来就在可迭代对象中的项
    复制代码
    复制代码

    isinstance\type

    复制代码
    复制代码
    isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
    isinstance() 与 type() 区别:
    type() 不会认为子类是一种父类类型,不考虑继承关系。
    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance()。
    # 例一
    a = 2
    print(isinstance(a,int)) # True
    print(isinstance(a,str)) # False # type() 与 isinstance() 区别 class A: pass class B(A): pass print("isinstance",isinstance(A(),A)) # isinstance True print("type",type(A()) == A) # type True print('isinstance',isinstance(B(),A) ) # isinstance True print('type',type(B()) == A) # type False
    复制代码
    复制代码

    zip 拉链函数

    复制代码
    复制代码
    # zip 拉链函数,
    # 将对象中对应的元素打包成一个个元组,
    # 然后返回由这些元组组成的列表迭代器。
    # 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
    print(list(zip([0,1,3],[5,6,7],['a','b'])))
    # [(0, 5, 'a'), (1, 6, 'b')]
    复制代码
    复制代码
    复制代码
    复制代码
    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 相反,可理解为解压,返回二维矩阵式
    [(1, 2, 3), (4, 5, 6)]
    复制代码
    复制代码

    reduce

    复制代码
    复制代码
    '''
    reduce()  函数
    reduce() 函数会对参数序列中元素进行累积
    函数将一个数据集合(链表、元组等)中的所有数据进行下列操作
    '''
    
    注意:
    Python3已经将reduce() 函数从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数:
    
    from functools import reduce
    def add(x,y):
        return x + y
    
    print(reduce(add,[1,2,3,4,5]))
    #  15
    
    print(reduce(lambda x, y: x+y, [1,2,3,4,5]))  # 15
    
    print(reduce(add,range(1,101)))
    #  5050

     

     

     

    内置函数:map、reduce、filter的用法和区别

    map:根据函数对指定序列做映射

    复制代码
    复制代码
    map
    参数
    接收两个参数:一个是函数,一个是序列(可迭代对象)
    返回值
    Python2 返回列表
    Python3 返回迭代器
    
    # 例子:
    # abs() 函数返回数字的绝对值
    # 新的内容的个数等于原内容的个数
    # ret = map(abs,[-1,-5,6,-7])
    # print(list(ret))
    # [1, 5, 6, 7]
    复制代码
    复制代码

    filter:过滤函数 新的内容少于等于原内容的时候。才能使用filter

    复制代码
    复制代码
    filter() 函数用于过滤序列,过滤不符合条件的元素,返回由符合条件元素组成的心列表
    
    参数:
    function  函数
    iterable  可迭代对象
    返回值:
    返回列表
    
    # 筛选大于10的数
    def is_odd(x):
        if x>10:
            return True
    
    ret = filter(is_odd,[1,4,5,7,8,9,76])  # 为迭代器
    print(list(ret))
    # [76]
    复制代码
    复制代码

    reduce:对于序列内所有元素进行累计操作

    复制代码
    复制代码
    '''
    reduce()  函数
    reduce() 函数会对参数序列中元素进行累积
    函数将一个数据集合(链表、元组等)中的所有数据进行下列操作
    '''
    
    from functools import reduce
    def add(x,y):
        return x + y
    
    print(reduce(add,[1,2,3,4,5]))
    #  15
    
    print(reduce(lambda x, y: x+y, [1,2,3,4,5]))  # 15
    
    print(reduce(add,range(1,101)))
    #  5050

     

     

     

    re的match和search区别?

    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

    re.search 扫描整个字符串并返回第一个成功的匹配。

     

     

    什么是正则的贪婪匹配?

    匹配一个字符串没有节制,能匹配多少就去匹配多少,知道没有匹配的为止

     

     

     

    #  <generator object <genexpr> at 0x00000000020CEEB8> 生成器
    # 在Python中,有一种自定义迭代器的方式,称为生成器(Generator)。
    # 定义生成器的两种方式:
    # 1.创建一个generator,只要把一个列表生成式的[]改成(),就创建了一个generator:
    # generator保存的是算法,每次调用next(),就计算出下一个元素的值,直到计算到最后一个元素,
    没有更多的元素时,抛出StopIteration的错误。 # 2.定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,
    而是一个generator



    如何实现 “1,2,3” 变成 [‘1’,’2’,’3’]

    list("1,2,3".split(','))


    如何实现[‘1’,’2’,’3’]变成[1,2,3]

    复制代码
    复制代码
    [int(x) for x in ['1','2','3']]
    
    
    python 里如何把['1','2','3'] 变成[1,2,3]
    
    a = ['1','2','3']
    b = [int(i) for i in a]
    print(b)
    # [1, 2, 3]

    一行代码实现删除列表中重复的值

    list(set([1, 2, 3, 4, 45, 1, 2, 343, 2, 2]))

    请用代码简答实现stack

    • Stack() 创建一个新的空栈
    • push(item) 添加一个新的元素item到栈顶
    • pop() 弹出栈顶元素
    • peek() 返回栈顶元素
    • is_empty() 判断栈是否为空
    • size() 返回栈的元素个数

     

     

    常用字符串格式化哪几种?

    1.占位符%

    %d 表示那个位置是整数;%f 表示浮点数;%s 表示字符串。

    print('Hello,%s' % 'Python')
    print('Hello,%d%s%.2f' % (666, 'Python', 9.99)) # 打印:Hello,666Python10.00

    2.format

    print('{k} is {v}'.format(k='python', v='easy'))  # 通过关键字
    print('{0} is {1}'.format('python', 'easy'))      # 通过关键字









 posted on 2021-06-28 21:15  zennpumpkin  阅读(38)  评论(0编辑  收藏  举报