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])))
  • 相关阅读:
    HDU1029 Ignatius and the Princess IV
    UVA11039 Building designing【排序】
    UVA11039 Building designing【排序】
    POJ3278 HDU2717 Catch That Cow
    POJ3278 HDU2717 Catch That Cow
    POJ1338 Ugly Numbers(解法二)
    POJ1338 Ugly Numbers(解法二)
    UVA532 Dungeon Master
    UVA532 Dungeon Master
    POJ1915 Knight Moves
  • 原文地址:https://www.cnblogs.com/colin1314/p/9520137.html
Copyright © 2011-2022 走看看