Python3 6大常用内置函数

整理于2020年11月下旬,献给不甘平凡的你
更多python3基础知识请查收于:

https://blog.csdn.net/weixin_45316122/article/details/109843899

Trick:纯demo,心在哪里,结果就在那里

1.sorted()

2.map()

3.enumerate()

4.zip()

5.filter()

6.reduce()

 


# -*- coding: utf-8 -*-
# Author       :   szy

#1.sorted()
"""
builtins
def sorted(iterable: Iterable[_T],
           *,
           key: Optional[(_T) -> Any] = ...,
           reverse: bool = ...) -> List[_T]

"""
# 1)对于一个列表排序
sorted([100, 98, 102, 1, 40])
# Out[2]: [1, 40, 98, 100, 102]
# 2)通过key参数/函数
# 比如一个长列表里面嵌套了很多字典元素,我们要按照每个元素的长度大小排序
L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
new_line=sorted(L,key=lambda x:len(x))
# Out[5]: [{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]
# 3)对由tuple组成的List排序 (这里我想吐槽一下李刚编著的疯狂python居然没有集合这个概念)
students = [('wang', 'A', 15), ('li', 'B', 12), ('zhang', 'B', 10)]
sorted(students, key=lambda student : student[2])#student[2]切片
# 4)用cmp函数排序  python3没有cmp这里需要导入 不然报错
# #TypeError: 'cmp' is an invalid keyword argument for this function
from functools import cmp_to_key
nums = [4, 3, 2, 1]
sorted(nums,key=cmp_to_key(lambda a, b: a - b))


"------------------------------我是一条华丽的分割线------------------------------"


# 2.map()
"""
builtins 
@overload def map(func: (...) -> _S,
        iter1: Iterable,
        iter2: Iterable,
        iter3: Iterable,
        iter4: Iterable,
        iter5: Iterable,
        iter6: Iterable,
        *iterables: Iterable) -> Iterator[_S]
"""
# map可以根据提供的函数对指定序列做映射,它接受一个函数f和一个list,并通过把函数f以此作用在list上的每个元素
# 然后返回一个新的list,map函数的入参也可以是多个.注意这个函数一定要有返回值(值值值重要的说三遍)。
# 不然就会返回新的list 类似[None, None, None, None, None, None, None, None, None]
def f(x):
    return x*x
map(f,[1,2,3,4,5])

# 3.enumerate()
"""
enumerate 
def __init__(self,
             iterable: Iterable[_T],
             start: int = ...) -> None

"""
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    pass
    # print(i, seq[i])
#0 one
# 1 two
# 2 three

"读书时偷的懒要用一辈子来还,今天的安逸将是一生的卑微。"
# 4.zip()
"""
builtins (内置)
@overload def zip(iter1: Iterable[_T1]) -> Iterator[Tuple[_T1]]

"""
# zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表
nums = ['flower','flow','flight']
for i in zip(*nums):
    pass
    # print(i)
# ('f', 'f', 'f')
# ('l', 'l', 'l')
# ('o', 'o', 'i')
# ('w', 'w', 'g')

# 5)filter()'
"""
builtins 
@overload def filter(function: (_T) -> Any,
           iterable: Iterable[_T]) -> Iterator[_T]
"""
#  函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
# 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
def is_odd(n):
    return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
# print(newlist)
# [1, 3, 5, 7, 9]

# 6)reduce()
'''
No documentation found.已从python3中移除
需要用的话要from functools import reduce
'''
# reduce() 函数会对参数序列中元素进行累积。
# 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作
# :用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
from functools import reduce
def add(x, y) :            # 两数相加
   return x + y
reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
# 15

你可能感兴趣的:(python基础)