内置函数介绍

1. 生成器

在列表解析时,内存会直接占用,但是生成器生成后,只有在调用迭代器时,需要多少数据,才占用多少内存。
# 简单的生成器
(i for i in range(5))
# 函数返回值通过yield修饰
def f():
 for i in range(10):
     yield i

2. map()函数

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。接收的参数与lambda传入的参数有关

x = map(lambda num: num + num, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(x))
y = map(lambda x, y, z: [x, y, z], [1, 2, 3], [4, 5, 6], [7, 8, 9])
print(y)# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

3. zip()函数

zip函数的原型为:zip([iterable, …])

参数iterable为可迭代的对象,并且可以有多个参数。该函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短的参数序列的长度。只有一个序列参数时,它返回一个1元组的列表。没有参数时,它返回一个空的列表。

x = zip(['abcA', 'ccBA', 'djaKP'], [1, 2])
# [('abcA', 1), ('ccBA', 2)]

for i in x:
    print(i)

4. filter()函数

filter(func,iter),后面的序列的每一个元素都会被前面的方法进行过滤。
如:

# 只获取大于10的元素
ff = filter(lambda a: a > 10, [55, 16, 2, 3, 9, 77])
print(list(ff))

对列表元素进行去重,使用filter,进行过滤

new_list = []


def my_d(a):
    if a not in new_list:
        new_list.append(a)
        return a


ff = filter(my_d, [55, 16, 2, 3, 9, 77, 55, 2, 3, 78])
print(list(ff))

# 不使用fliter 进行列表去重:
def d(lists):
    new_list2 = []
    for i in lists:
        if i not in new_list2:
            new_list2.append(i)
    return new_list2


print(d([55, 16, 2, 3, 9, 77, 55, 2, 3, 78]))

5. 累计操作函数reduce()

from functools import reduce

a = reduce(lambda x, y: x * y, range(1, 6))# 1*2*3*4*5
print(a) # 120

你可能感兴趣的:(内置函数介绍)