zoukankan      html  css  js  c++  java
  • lambda函数/排序/filter/map

    1.lambda 匿名函数
      zrf = lambda x:x**2
      ret = zrf(10) #这里面实际上还是有函数名
      print(ret)
    2.sorted 排序(list也自带排序功能)
      排序函数
      sorted(iterable,key=函数名,reverse=False)
      key:把里面的每一个值拿到函数处理之后返回一个 数字
      在根据数字排序 顺序或者倒序

    3.filter 筛选 过滤
      filter(function,iterable)
      function:用来筛选的函数
      函数返回的是true或者false
      def func(age):
        return age>18
    4.map 映射函数
      map(function,iterable)
      映射即为函数
      print(list(map(lambda x,y:x+y,lst1,lst2)))

     1 # 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
     2 # name=[‘oldboy’,'alex','wusir']
     3 name = ['oldboy', 'alex', 'wusir']
     4 
     5 
     6 def func(s):
     7     return s + "_sb"
     8 
     9 
    10 # 这里面映射之后  返回的是一个可迭代对象
    11 
    12 for a in map(lambda s: s + "_sb", name):
    13     print(a)
    View Code
     1 # 用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
     2 l = [{'name': 'alex'}, {'name': 'y'}]
     3 
     4 
     5 # 这里面字典的操作有点忘了
     6 def func(dic):
     7     dic['name'] += 'sb'
     8     return dic
     9 
    10 
    11 # 怎么写成匿名函数?
    12 print(list(map(lambda s: s['name'] + 'sb', l)))
    13 
    14 #
    15 #用filter来处理,得到股票价格大于20的股票名字
    16 shares = {
    17     'IBM': 36.6,
    18     'Lenovo': 23.2,
    19     'oldboy': 21.2,
    20     'ocean': 10.2,
    21 }
    22 
    23 #  这个怎么访问  ===>bug!!!!
    24 # def func(s):
    25 #     return s[1] > 20
    26 print(list(filter(lambda k: shares[k] > 20, shares)))
    View Code

    5.递归(难点)

      递归的深度1000 但是到不了1000
      一般人的电脑到997-998
      可以在sys里面的改掉限度
      递归非常消耗资源
      一般都不用递归
      but 写起来简单!!!
      os.listdir
      os.path.join
      os.path.isdir

     1 import os
     2 
     3 
     4 # os.listdir
     5 # os.path.join
     6 # os.path.isdir
     7 
     8 def func(path, deepth):
     9     temp = os.listdir(path)
    10     for file in temp:
    11         full_path = os.path.join(path, file)
    12         if os.path.isdir(full_path):
    13             print("  " * deepth, full_path)
    14             func(full_path, deepth + 1)
    15         else:
    16             print("  " * deepth, full_path)
    View Code

    6.二分法查找

  • 相关阅读:
    大牛思考方式
    web面试题大全
    github上最全的资源教程-前端涉及的所有知识体系
    java switch语句注意的事项
    Lucene Payload 的研究与应用
    hive array、map、struct使用
    黑马程序员--正则表达式
    [置顶] 读源码练内功(一):guava之eventbus
    自定义Java Annotations实例以及用Java Reflection来解析自定义的Annotation
    Solr之NamedList 简单介绍与实例解析
  • 原文地址:https://www.cnblogs.com/d9e84208/p/10589932.html
Copyright © 2011-2022 走看看