博客
关于我
Python 中的多层for in嵌套循环使用
阅读量:804 次
发布时间:2023-03-06

本文共 1550 字,大约阅读时间需要 5 分钟。

两层遍历与三层遍历的理解

在 Python 中,列表推导是一个非常强大的工具,能够帮助我们以简洁的代码完成复杂的遍历操作。以下将详细介绍两层遍历和三层遍历的实现方式以及输出结果。

两层遍历

假设我们有一个二维列表 a,其结构如下:

a = [[1], [2], [3], [4], [5]]

当我们执行以下代码时:

x for i in a for x in i

这实际上是执行了两层遍历:

  • 最外层遍历 a,逐个访问每个子列表 i
  • 内层遍历 i,逐个访问子列表中的元素 x
    最终输出结果为:
  • 12345

    从输出结果可以看出,第一个 x 代表着最终的输出顺序。最外层的 for 循环是对 a 的最外层遍历,第二个 for 是对子列表 i 的遍历。由于输出是根据内层 x 的值进行的,因此结果会按照内层遍历的顺序进行输出。

    三层遍历

    同样地,三层遍历的逻辑是相同的。假设我们有以下结构:

    list_test = [        [ [1,2,3], [4,5,6] ],        [ [7,8,9] ]    ]

    当我们执行以下代码时:

    x for i in list_test for j in i for x in j

    这将执行三层遍历:

  • 最外层遍历 list_test,逐个访问每个子列表 j
  • 中间层遍历 j,逐个访问子列表中的元素 x
  • 最内层遍历 x,逐个访问元素。
    最终输出结果为:
  • 123456789

    可以看出,三层遍历的逻辑与两层遍历类似,只是增加了一层额外的遍历层次。

    字典交集与列表操作

    除了列表遍历外,还可以通过代码实现字典交集和列表操作。以下是两个示例:

    字典交集

    以下函数用于查找两个字典中相同的键,并根据键的值进行比较:

    def intersect_dicts(da, db, exclude=()):    return {k: v for k, v in da.items() if k in db and not any(x in k for x in exclude)}

    这个函数的作用是:

  • 返回 dadb 中键相同且值的形状一致的字典。
  • 如果提供了 exclude 参数,则会排除包含这些键的结果。
  • 例如:

    a = {'name': "jjw", 'age': 18, 'sex': 'boy'}b = {'name': "jjw", 'age': 19, 'height': 175}print(intersect_dicts(a, b))  # 输出:{'name': 'jjw', 'age': 18}print(intersect_dicts(a, b, 'age'))  # 输出:{}

    列表操作

    以下是一些与列表相关的操作示例:

    c = [1, 2, 3, 4, 5]d = [1, 2, 5, 6]print([i in c for i in d])  # 输出:[True, True, True, False]print(any([i in c for i in d]))  # 输出:Trueprint(not any([i in c for i in d]))  # 输出:Falseprint(not any([i in c for i in e]))  # 输出:True

    这些代码展示了如何利用列表推导和 any() 函数来判断元素是否存在于另一个列表中。

    输出结果

    根据上述代码执行结果,输出将如下:

    • 字典交集结果:
    {'name': 'jjw', 'age': 18}{}
    • 列表操作结果:
    [True, True, True, False]TrueFalseTrue

    这些结果展示了代码的执行效果以及实际应用场景。

    转载地址:http://kbofk.baihongyu.com/

    你可能感兴趣的文章
    python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
    查看>>
    python系列【仅供参考】:python tornado 集成redis消息订阅的异步任务之后tornado主程序无法启动,解决方案
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    Python和RF编写web自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>