• 人工智能与大数据面试指南——Python


    分类目录:《人工智能与大数据面试指南》总目录

    《人工智能与大数据面试指南》系列下的内容会持续更新,有需要的读者可以收藏文章,以及时获取文章的最新内容。


    map函数

    map(function, iterable, ...)根据提供的函数对指定序列做映射。function为函数,iterable是一个或多个序列。Python 2.x 返回列表,而Python 3.x返回迭代器。

    def square(x):
        return x ** 2
    map(square, [1,2,3,4,5])    # 计算列表各个元素的平方
    
    • 1
    • 2
    • 3

    Python 3.x返回迭代器:

    <map at 0x22c42156860>   
    
    • 1

    使用list()转换为列表 / 使用lambda匿名函数 / 传入两个可迭代对象:

    list(map(square, [1,2,3,4,5]))
    list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
    list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
    
    • 1
    • 2
    • 3

    Python迭代器

    迭代器是一种对象,该对象包含值的可计数数字。迭代器是可迭代的对象,这意味着可以遍历所有值。从技术上讲,在Python中,迭代器是实现迭代器协议的对象,它包含方法 __iter__()__next__()。列表、元组、字典和集合都是可迭代的对象。它们是可迭代的容器,您可以从中获取迭代器(Iterator)。所有这些对象都有用于获取迭代器的iter() 方法:

    mytuple = ("apple", "banana", "cherry")
    myit = iter(mytuple)
    
    print(next(myit))
    print(next(myit))
    print(next(myit))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出:

    apple
    banana
    cherry
    
    • 1
    • 2
    • 3

    要把对象/类创建为迭代器,必须为对象实现__iter__()__next__()方法。__iter__()方法的作用相似,您可以执行操作(初始化等),但必须始终返回迭代器对象本身。__next__() 方法也允许您执行操作,并且必须返回序列中的下一个项目。如果你有足够的next()语句,或者在for循环中使用,为了防止迭代永远进行,我们可以使用StopIteration语句。在 next() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误:

    class MyClass:
        def __init__(self):
            self.l = [1,2,3,4,5]
            
        def __iter__(self):
            self.ind = 0
            return self
        
        def __next__(self):
            iter_ind = self.ind
            self.ind += 1
            if iter_ind >= 5:
                raise StopIteration
                
            return self.l[iter_ind]
    
    obj = MyClass()
    for i in obj:
        print(i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    输出:

    1
    2
    3
    4
    5
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    英语单词12大前缀3大词性后缀
    【SWAT】SWAT-CUP动态基流分割相关说明
    跨境电商如何搭建独立站?
    SpringCloud(38):Spring Cloud Nacos discovery Starter配置项信息说明
    设计模式复习
    Ubuntu:解决github出现 Permission denied (publickey)的问题
    Android PackageManager的妙用
    Java常用的日期类
    计算机视觉领域经典模型汇总(2023.09.08
    电子协会 C语言 1级 33 、奇偶数判断
  • 原文地址:https://blog.csdn.net/hy592070616/article/details/127592556