Python 可迭代对象 iterable的具体使用

编辑: admin 分类: python 发布时间: 2021-12-03 来源:互联网
目录
  • 前置知识
  • 可迭代对象
    • 如何判断一个对象是否是可迭代对象?
  • enumerate 函数
    • 多嵌套列表
      • 总结

        前置知识

        如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple,这种遍历我们称为迭代(Iteration)

        在 Python 中,迭代是通过 for ... in 来完成的

        lists = [1, 2, 3, 4, 5]
        for i in lists:
            print(i)

        可迭代对象

        for 循环不仅可以用在 list 或 tuple 上,还可以用在其他可迭代对象上
        list 这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是只要是可迭代对象,无论有无下标,都可以迭代

        dicts = {
            "a": 1,
            "b": 2
        }
        for i in dicts:
            print(i)
        
        # 输出结果
        a
        b
        
        

        如何判断一个对象是否是可迭代对象?

        from collections import Iterable
        
        lists = [1, 2, 3, 4, 5]
        
        dicts = {
            "a": 1,
            "b": 2
        }
        
        print(isinstance(lists, Iterable))
        print(isinstance(dicts, Iterable))
        print(isinstance({"test"}, Iterable))
        print(isinstance(1234, Iterable))
        
        # 输出结果
        True
        True
        True
        False

        enumerate 函数

        循环列表的话,默认是只返回元素值,如果想同时拿到元素值和对应的下标值呢?
        enumerate 函数可以把 list 变成一个 索引-元素对的迭代对象,然后循环遍历这个对象即可

        lists = [1, 2, 3, 4, 5]
        
        # 看看是不是迭代对象
        print(isinstance(enumerate(lists), Iterable))
        
        # 循环
        for ind, val in enumerate(lists):
            print(ind, val)
        
        # 输出结果
        True
        0 1
        1 2
        2 3
        3 4
        4 5

        多嵌套列表

        for x, y in [(1, 1), (2, 4), (3, 9)]:
            print(x, y)
        
        # 输出结果
        1 1
        2 4
        3 9
        
        

        总结

        任何可迭代对象都可以作用于 for 循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用 for 循环

        到此这篇关于Python 可迭代对象 iterable的具体使用的文章就介绍到这了,更多相关Python 可迭代对象 iterable内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!

        【文章出处:http://www.1234xp.com/hggf.html欢迎留下您的宝贵建议】