zoukankan      html  css  js  c++  java
  • python-day14

    一. 匿名函数

      def 函数名(形参):

        函数体(return)

      函数名(实参)

      形参:

        1. 位置参数

        2. 默认值参数

        3. 动态传参

          *args: 动态接受位置参数

          **kwargs: 动态接受关键字参数

        位置 > *args >默认值参数 > **kwargs

      实参:

        1. 位置参数

        2. 关键字参数

        3. 混合参数

      lambda 参数: 返回值

    1 a = lambda n:n*n #匿名函数(返回n的平方),一般不会用来做复杂的操作
    2 r = a(3)
    3 print(r)
    4 # a 给函数传递两个参数, a, b 计算a+b的结果
    5 n = lambda m,n:m+n
    6 print(n(1,9))
    View Code

    二. sorted

      排序

      sorted( Iterable, key , reverse )

     1 # sorted() #排序
     2 # lst = [1,2,3,4,5,3,2,2,1,5,6,8,9,76,4]
     3 # s = sorted(lst,reverse=True) #倒序
     4 # print(s)
     5 
     6 # lst = ["易", "贾克斯", "赵信", "德玛西亚", "皇子", "刀妹"]
     7 # def func(s):
     8 #     return len(s)
     9 # s = sorted(lst,key=func)#把列表中的每一个元素传递给func. 根据func返回值进行排序
    10 # print(s)
    View Code

    三. filter

      筛选

      filter(function, Iterable )

    1 # filter() 筛选
    2 # lst = ["渴望", "年轮", "家有儿女", "蜗居", "49天", "浪漫满屋"]
    3  # 把后面的可迭代对象中的每一个元素交给前面的函数。 根据函数返回的True或者False。 判断是否保留该元素
    4 # f = filter(lambda  s:len(s)>2,lst)
    5 # # print('__iter__' in dir(f))
    6 # for el in f :
    7 #     print(el)
    View Code

    四. map

      映射

    1 # map() 映射
    2 # lst = [1,2,3,48,666,59]
    3 # #计算列表中的每一项的平方
    4 # #映射
    5 # #把可迭代对象中的每一个元素拿出来交给前面的函数执行,保留最后的执行结果
    6 # m = map(lambda x:x*x,lst )
    7 # print(list(m))
    View Code

    五. 递归

      自己调用自己

     1 # 递归
     2 # def func():
     3 #     print('我是函数')
     4 #     func() #函数自己调用自己
     5 # func()
     6 
     7 import os#它是一个模块
     8 def func(path,ceng): #path: H:/a
     9     lst = os.listdir(path)
    10     for el in lst:
    11         rp = os.path.join(path,el)
    12         if os.path.isdir(rp):
    13             print('	'*ceng,el,sep='')
    14             func(rp,ceng+1)
    15         else:
    16             # f = open(rp, mode="w")
    17             # f.wriete("alex到此一游")
    18             # f.flush()
    19             # f.close()
    20             print('	'*ceng,el,sep='')
    21 func('H:/a',0)
    View Code

    六. 二分法(递归的应用)

      开头

      结尾

      中间

     1 # 使用二分法查找来实现上述功能,
     2 # 必须是有序序列
     3 lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963] # 时间复杂度. n
     4 # # 让用户输入一个数n. 判断这个n是否出现在lst中
     5 n = int(input('输入一个数:'))
     6 left = 0  #左边界
     7 right = len(lst) - 1 #末尾的索引 右边界
     8 while left <= right:#当左边界大于右边界结束循环
     9     mid = (left+right)//2 #求中间的索引坐标
    10     if n > lst[mid]:
    11         left = mid+1#左边界往右移动
    12     elif n< lst[mid]:
    13         right = mid-1#右边界往左移动
    14     else:
    15         print('找到了') #找到了目标数字
    16         break
    17 else: #当左比右大,循环结束,没有找到目标数
    18     print('没找到') 
    View Code
  • 相关阅读:
    maven 笔记
    面试题53:在排序数组中查找数字
    面试题52:两个链表的第一个公共节点
    面试题51:数组中的逆序对
    面试题50_2:字符流中第一个只出现一次的字符
    面试题50:第一个只出现一次的字符
    面试题49:丑数
    面试题48:最长不含重复字符的连续子字符串
    面试题47:礼物的最大值
    面试题8:二叉树的下一个节点
  • 原文地址:https://www.cnblogs.com/Thui/p/9910864.html
Copyright © 2011-2022 走看看