zoukankan      html  css  js  c++  java
  • python 内置函数

    内置函数

    什么是内置函数?内置就是Python给你提供的,拿来直接用的函数,比如print,input等等。

    以下介绍几个重要的内置函数以及使用方法:

    min,max函数

    内置函数min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。

    1 l1 = [(1,1000),(2,18),(3,500)]
    2 def func(x):
    3     return x[1]
    4 print(min(l1, key=func))   # (2, 18)
    从上面的例子可以看出:
    1 min函数会将iterable里面的每个元素自动提取出来
    2 min函数会将返回值作为比较大小的具体条件
    3 min函数将遍历的元素返回回来
    同理:内置函数max则是返回可迭代对象的最大值(可以加key,key为函数名,通过函数的规则,返回最大值)

    与数据结构相关的内置函数

    列表与元组

    list: 将一个可迭代对象转化为列表(如果是字典,默认将key作为列表的元素)

    tuple: 将一个可迭代对象转化为元组(如果是字典,默认将key作为元组的元素)

    reversed()

    reversed:将一个序列翻转,并返回次翻转序列的迭代器。

     1 # 列表
     2 l1 = [1,3,4,2,6]
     3 for i in reversed(l1):
     4     print(i)
     5 # 字符串
     6 s1 = 'assdfdgf'
     7 for i in reversed(s1):
     8     print(i)
     9 # 字典
    10 dic = {'name':'colin','age':27,'hobby':'meimei'}
    11 for i in reversed(dic):
    12     print(i)     # TypeError: 'dict' object is not reversible

    slice: 构造一个切片对象,用于列表的切片。

     1 # 切片取值
     2 l1 = [i for i in range(10)]
     3 l2 = l1[:5:2]
     4 # slice取值
     5 l3 = [i for i in range(10,20)]
     6 sli_obj = slice(0,5,2)
     7 print(l3[sli_obj])   # [10, 12, 14]
     8 # slice取值
     9 l4 = ['a','b','c','d','e','f','g']
    10 sli_obj = slice(0,5,2)
    11 print(l4[sli_obj])   # ['a', 'c', 'e']

    format: 与具体数据有关,用于计算各种小数,精算等.

    1 print(format('test','<20'))   # test                 # 总共20个字符长度,test左对齐
    2 print(format('test','>20'))   #                 test # 总共20个字符长度,test右对齐
    3 print(format('test','^20'))   #         test         # 总共20个字符长度,test居中

    bytes: 主要是将unicode类型转化为bytes类型。

    1 a1 = '太白'
    2 b1 = bytes(a1,encoding='utf-8')
    3 print(b1)  # b'xe5xa4xaaxe7x99xbd'
    4 
    5 a1 = '太白'
    6 print(a1.encode('utf-8'))  # b'xe5xa4xaaxe7x99xbd'
    7 print(a1.encode('utf-8').decode())   # 太白

    repr: 返回一个对象的string形式(原形毕露)。

    1 print('colin')          # colin
    2 print(repr('colin'))    # 'colin'
    3 print(repr("colin"))    # 'colin'
    4 print(repr("{'colin':'haoren'}"))   # "{'colin':'haoren'}"

    sorted: 对所有可迭代的对象进行排序操作。

     1 l1 = [2,3,4,5,8,1,3,4,7]
     2 l1.sort()
     3 print(l1)  # [1, 2, 3, 3, 4, 4, 5, 7, 8]
     4 print(sorted(l1))  # [1, 2, 3, 3, 4, 4, 5, 7, 8]   形成了一个新列表
     5 print(l1)          # [2, 3, 4, 5, 8, 1, 3, 4, 7]   原列表不变
     6 
     7 l2 = [(1,1000),(2,18),(4,250),(3,500)]
     8 print(sorted(l2))    # 默认按照第一个值排序
     9 
    10 def func1(x):
    11     return x[1]
    12 print(sorted(l2,key=func1,reverse=True))  # 通过key 自定制函数选择第二个值

    zip():拉链方法 将多个iter 纵向组成一个个元组。

         函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

    1 l1 = [1,2,3,5,6,7]
    2 tu1 = ('alex','太白', 'wusir', '女神')
    3 dic = {'name': '日天', 'age':28, 'hobby': 'tea', 'weight':100}
    4 print(zip(l1,tu1,dic))
    5 for i in zip(l1,tu1,dic):
    6     print(i)

    filter: 过滤,迭代器

    1 l1 = [i for i in range(10)]
    2 def func1(x):
    3     return x % 2 == 0
    4 print(list(filter(func1,l1)))

    map:会根据提供的函数对指定序列做映射。 循环模式.

    1 l1 = [1,2,3,4]
    2 # print([i**2 for i in l1])
    3 def func(x): return x**2
    4 print(list(map(func,l1)))

    匿名函数 (lambda表达式)

    func2 = lambda x: x*2
    
    def func2(x):
        return x**2
    
    func2 = lambda x : x**2
    print(func2(6))
    
    func2 = lambda x,y: x+y
    print(func2(1,2))
    # 匿名函数 不单独使用,多与内置函数结合。
    
    l2 = [(1,1000),(2,18),(4,250),(3,500)]
    print(sorted(l2,key=lambda x:x[1]))

    例题:

    dic={'k1':10,'k2':100,'k3':30}
    #1,利用内置函数匿名函数将dic按照值进行排序。
    print(sorted(dic,key=lambda x:dic[x]))
    #2,利用内置函数匿名函数将dic按照键值对进行排序。
    print(sorted(dic.items(),key=lambda x:x[1]))
    # 利用内置函数匿名函数 计算列表的每个数的2倍。
    # [1,5,7,4,8]
    print(list(map(lambda x:x*2,[1,5,7,4,8])))
    # 利用内置函数匿名函数,将值大于10的留下来。
    # [5,8,11,9,15]
    print(list(filter(lambda x: x>10,[5,8,11,9,15])))
  • 相关阅读:
    Git 生命周期
    Git 配置环境
    JAVA克隆对象报错:The method clone() from the type Object is not visible
    C# 将字符串按要求分解成字符串数组
    servlet 标红的错误笔记
    TIBCO Jaspersoft Studio 报表软件使用教程
    错误笔记4
    ^按位运算详解
    表现层状态转换
    servlet 读取文件
  • 原文地址:https://www.cnblogs.com/colin1314/p/9520137.html
Copyright © 2011-2022 走看看