• Python内置函数


    map

        map(处理逻辑,可遍历的对象)   处理序列中的每个元素,元素个数及位置与原来一样

    1
    2
    v = "ALEX"        
    print(list(map(lambda x: x.lower(), v)))     # 结果为 ['a', 'l', 'e', 'x']

        更节省代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    a = []
    def jianer(array):
        for i in array:
            a.append(i.lower())
        print(a)
    jianer(v)
     
    结果
    ['a', 'l', 'e', 'x']

    filter

        filter(处理逻辑,可遍历对象) 遍历序列中的每个元素,判断每个元素的布尔值为True则保留元素

    1
    2
    3
    4
    5
    6
    7
    8
    9
    movie_people = ['alex_sb', 'wupeiqi_sb', 'linhaifeng', 'yuanhao_sb']
    def filter_test(array):
        ret = []
        for i in array:
            if not i.endswith('sb'):
                ret.append(i)
        return ret
    res = filter_test(movie_people)
    print(res)<br>结果<br>['linhaifeng']
    1
    2
    movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
    print(list(filter(lambda n: n.endswith('sb'), movie_people)))    # 判断元素endswith的值为True,为True则保留元素<br>结果<br>['alex_sb', 'wupeiqi_sb', 'yuanhao_sb']<br>

    reduce

       from funtools import reduce

       reduce(函数,序列,默认空参数) 处理一个序列,然后把序列进行合并操作

     1 num_l = [1, 2, 3, 100]
     2 res = 0
     3 for num in num_l:
     4     res += num
     5 print(res)
     6 
     7 
     8 def reduce_test(array):
     9     res = 0
    10     for num in array:
    11         res += num
    12     return res
    13 
    14 ret = reduce_test(num_l)
    15 print(ret)
    16 
    17 结果都为106
    铺垫例子
    1
    2
    3
    4
    5
    from functools import reduce          # reduce 用reduce函数要定义这句话
     
    num_l = [1, 2, 3, 100]
    print(reduce(lambda x, y: x + y, num_l, 1))
    print(reduce(lambda x, y: x + y, num_l))

    其余内置函数总结

    用法如下(缺少的待补充)

      abs  取绝对值  参数可以是:负数、正数、浮点数或者长整形;只取绝对值,但是不会取整

    print(abs(-1))
    print(abs(1))
     
    结果
    1
    1

      all  判断所有里面的元素是否为真值,如果有单个为空则返回True。参数为可迭代对象

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    >>> all(['a', 'b', 'c', 'd'])  #列表list,元素都不为空或0
    True
    >>> all(['a', 'b', '', 'd'])   #列表list,存在一个为空的元素
    False
    >>> all([0, 12, 3])           #列表list,存在一个为0的元素
    False
       
    >>> all(('a', 'b', 'c', 'd'))  #元组tuple,元素都不为空或0
    True
    >>> all(('a', 'b', '', 'd'))   #元组tuple,存在一个为空的元素
    False
    >>> all((0, 12, 3))           #元组tuple,存在一个为0的元素
    False
       
       
    >>> all([]) # 空列表
    True
    >>> all(()) # 空元组
    True

      any  有一个为真则为真,返回True

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    >>> any(['a', 'b', 'c', 'd'])  #列表list,元素都不为空或0
    True
    >>> any(['a', 'b', '', 'd'])  #列表list,存在一个为空的元素
    True
    >>> any([0, '', False])  #列表list,元素全为0,'',false
    False
      
    >>> any(('a', 'b', 'c', 'd'))  #元组tuple,元素都不为空或0
    True
    >>> any(('a', 'b', '', 'd'))  #元组tuple,存在一个为空的元素
    True
    >>> any((0, '', False))    #元组tuple,元素全为0,'',false
    False
      
      
    >>> any([]) # 空列表
    False
    >>> any(()) # 空元组
    False

      bin  十进制转二进制

    1
    2
    3
    print(bin(5))
     
    0b101        # 0b表示二进制

      hex   十进制转十六进制

    1
    2
    3
    print(hex(74))
     
    0x4a     

      oct  十进制转八进制

    1
    2
    3
    print(oct(18))
     
    0o22

      bool  判断布尔值

      bytes 编码  ascll码不能编译中文,会报错

    1
    2
    3
    4
    5
    6
    name = '你好'
    print(bytes(name,encoding='utf8'))                # 手动把字符串编码,转为二进制
    print(bytes(name,encoding='utf8').decode('utf8')) # 需要把字符串进行编码,再解码(用什么方式编码就用什么解码,decode)
     
    b'xe4xbdxa0xe5xa5xbd'
    你好

      dir  显示函数内置属性和方法

    1
    2
    3
    print(dir(dict))
     
    ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

      divmod  得到商和余数(可用作分页用)

    1
    2
    3
    print(divmod(10,3))
     
    (3,1)

      eval  1、提取字符串的数据结构 2、作字符串中的数据运算

    1
    2
    3
    4
    5
    6
    dic={'name':'alex'#字典类型转成字符串
    dic_str=str(dic)
    print(dic_str)
     
    d1=eval(dic_str)     #eval:把字符串中的数据结构给提取出来
    print(d1)
    express = "1+2*(3/3-1)-2"
    print(eval(express))
    
    输出
    -1,0               第二种数据运算

      hash  可hash的数据类型即不可变数据类型,不可hash的数据类型即可变数据类型

           hash的作用:从下载的软件判断是否被改变,通过对比hash值,便知道

      help  查看函数的用法的详细信息

      isinstance  判断类型

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    print(isinstance(1,int))       #判断是不是int类型
    print(isinstance('abc',str))   #判断字符串
    print(isinstance([],list))     #判断列表
    print(isinstance({},dict))     #判断字典
    print(isinstance({1,2},set))   #判断集合
     
    True
    True
    True
    True
    True

      locals

    def test():
        age = "18"
        print(globals())    # 输出全局变量
        print(locals())     # 输出上一层的变量
    
    test()
    
    
    {'test': <function test at 0x000001C869BB9598>, '__file__': 'C:/Users/lenovo/PycharmProjects/untitled/pythons3/内置函数.py', '__spec__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C869B56CF8>, '__builtins__': <module 'builtins' (built-in)>, '__package__': None, '__cached__': None, '__name__': '__main__', '__doc__': None}
    {'age': '18'}
    复制代码

      max(最大)和min(最小)   遍历比较,不同类型间不能比较

    list = [99,55,23,11,68]
    print(max(list))
    print(min(list))
    
    99
    11
    age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
    print(max(age_dic.values()))        # 取出最大年龄
    print(max(age_dic))                 # 默认比较key
    
    100
    zsc_age

     

     1 age_max = [
     2         {"name":"alex","age":25},
     3         {"name":"tom","age":30},
     4         {"name":"tony","age":55}
     5 ]
     6 li = []
     7 for item in age_max:
     8     li.append(item["age"])
     9 print(li)
    10 age = {"alex":25,"tom":30,"tony":55}
    11 print(max(li))
    12 max(age_max,key=lambda dic:dic["age"])
    13 print(max(age_max,key=lambda x:x["age"]))
    14 
    15 [25, 30, 55]
    16 55
    17 {'name': 'tony', 'age': 55}
    年龄比较高级用法

      zip 一一对应分配

    print(list(zip(('a', 'n', 'c'), (1, 2, 3))))
    print(list(zip(('a', 'n', 'c'), (1, 2, 3, 4))))
    print(list(zip(('a', 'n', 'c', 'd'), (1, 2, 3))))
    
    [('a', 1), ('n', 2), ('c', 3)]
    [('a', 1), ('n', 2), ('c', 3)]
    [('a', 1), ('n', 2), ('c', 3)]
    p={'name':'alex','age':18,'gender':'none'}
    print(list(zip(p.keys(),p.values())))
    print(list(p.keys()))    #取keys
    print(list(p.values()))  #values
    print(list(zip(['a','b'],'12345')))   # zip传俩个参数,都是序列。便可一一对应
    
    [('age', 18), ('gender', 'none'), ('name', 'alex')]
    ['age', 'gender', 'name']
    [18, 'none', 'alex']
    [('a', '1'), ('b', '2')]

        max和zip结合使用

    age = {"alex":25,"tom":30,"tony":55}
    print(list(zip(age.values(),age.keys())))       # 一一对应
    print(max(zip(age.values(),age.keys())))        # 一一对应取最大值
    
    [(55, 'tony'), (25, 'alex'), (30, 'tom')]
    (55, 'tony')
    dic={'age1':18,'age2':10}
    print(max(dic))           # 比较的是key
    print(max(dic.values()))  # 比较的是值,但是不知道对应的哪个key
    print(max(zip(dic.values(),dic.keys()))) # 通过zip,便可以获取到值最大,对应的是哪个key
    
    age2
    18
    (18, 'age1')

      pow 几的几次方

    print(pow(3,3))
    print(pow(2,3,2))
    
    27          # 3**3   3的3次方
    0           # 2**3%2 2的3次方取余

      reversed  反转

    li = [1,2,3,4]
    print(list(reversed(li)))     # 反转
    
    [4, 3, 2, 1]      

      round  四舍五入

    print(round(4.3))
    
    4

      set  变集合,记得集合的特性

    print(set("hello"))
    
    {'o', 'l', 'h', 'e'}

      slice 切片,可以指定步长

    l='hello'
    s1=slice(3,5)     # 切片 取3到5的元素
    s2=slice(1,4,2)  # 切片,指定步长为2
    print(l[3:5])
    
    print(l[s1])         # 切片
    print(l[s2])    
    
    print(s2.start)    # 开始
    print(s2.stop)    # 结束
    print(s2.step)    # 步长
    
    lo
    lo
    el
    1
    4
    2

      sorted 排序(排序本质上就是在比较大小,不同类型间不能比较)

    l=[3,2,1,5,7]
    l1=[3,2,'a',1,5,7]
    print(sorted(l))       # 排序
    # print(sorted(l1))    # 会报错
    
    [1, 2, 3, 5, 7]
    people=[
         {'name':'alex','age':1000},
         {'name':'wupei','age':10000},
         {'name':'yuanhao','age':9000},
         {'name':'linhaifeng','age':18},
     ]
    print(sorted(people,key=lambda dic:dic['age']))    # 按年龄进行排序
    
    [{'name': 'linhaifeng', 'age': 18}, {'name': 'alex', 'age': 1000}, {'name': 'yuanhao', 'age': 9000}, {'name': 'wupei', 'age': 10000}]
    年龄排序
    name_dic={
         'abyuanhao': 11900,
         'alex':1200,
         'wupei':300,
    }
    print(sorted(name_dic))   #按key排序
    
    print(sorted(name_dic,key=lambda key:name_dic[key]))    # 取出字典的values排序
    
    print(sorted(zip(name_dic.values(),name_dic.keys())))   # 按价格从低到高排序,并一一对应
    
    ['abyuanhao', 'alex', 'wupei']
    ['wupei', 'alex', 'abyuanhao']
    [(300, 'wupei'), (1200, 'alex'), (11900, 'abyuanhao')]
    高级用法

      sum 求和

    1 li = [1,2,3,4]
    2 print(sum(li))
    3 print(sum(range(101)))
    4 
    5 10
    6 5050

      type 判断数据类型

    msg = "123"
    if type(msg) is str:
        msg = int(msg)
        res = msg+1
        print(res)
    
    124
    View Code

      vars

        里面如果没有参数,和locals用法相同

    def test():
        name = "病毒尖儿"
        print(locals())
        print(vars())
    test()
    
    {'name': '病毒尖儿'}
    {'name': '病毒尖儿'}
    示例

        如果里面有一个参数,查看某一个方法,并显示成字典的类型

    print(vars(int))
    
    内容过多,不再添加,以字典的形式表现
    示例

      import 导入模块(就是导入一个py文件)      

        粗略用法,不能导入字符串类型(以后可能会这种需求)

     1 # 1、先创建一个test.py的文件
     2         写下一下内容
     3                 def say_hi():
     4                     print("你好,林师傅")
     5 # 如果想在别的地方调用这个模块(这个test.py文件)
     6 
     7 import test
     8 test.say_hi()
     9 
    10 结果
    11 
    12 你好,林师傅
    调用模块简单示例

      __import__ 可以导入有字符串模块儿

        粗略用法

     1 # 1、先创建一个test.py的文件
     2         写下一下内容
     3                 def say_hi():
     4                     print("你好,林师傅")
     5 # 如果想在别的地方调用这个模块(这个test.py文件)
     6 
     7 module_name='test'
     8 m=__import__(module_name)   #有字符串的模块
     9 m.say_hi()
    10 
    11 结果
    12 
    13 你好,林师傅
    __import__示例

          这里只是对模块粗略进行解释。未完,待续……

  • 相关阅读:
    docker相关
    多线程
    设计模式
    ftp下载乱码问题
    Windows无法启动SQL server 代理服务(服务器)错误1067:进程意外终止
    Struts2 if标签
    Java项目编译时经常会出现不编译,或者报一些假性错误
    ajaxSubmit 上传文件 提示下载json处理
    MySQL中优化sql语句查询常用的30种方法
    mybatis 中的where标签
  • 原文地址:https://www.cnblogs.com/zhangliang91/p/10547469.html
Copyright © 2020-2023  润新知