【问题标题】:Comprehensive lists; how to use the acquired information?综合清单;如何使用获取的信息?
【发布时间】:2021-10-28 19:20:27
【问题描述】:

我正在使用 pyautogui 来检测图像。在这种情况下,数字 1 - 4 的图片。我对综合列表不太熟悉,想知道是否有可能看到四个图像中的哪一张被检测到。如果图片是 one.png 我想启动进程 1,如果图片是 two.png 我想启动进程 2,依此类推。

number = [pyautogui.locateOnScreen(f'{nr}.png', confidence = 0.95)
                for nr in ('one', 'two', 'three', 'four')
            ]

【问题讨论】:

    标签: python list-comprehension pyautogui


    【解决方案1】:

    这只是 python 列表推导的一个简单用例。 例如,

    numbers = [i for num in (1,2,3,4)] 
    print(numbers)
    

    会给出输出

    [1,2,3,4]
    

    在您的情况下,不是简单地将i(如上所示)存储在最终列表中,而是将每个nrpyautogui.locateOnScreen 函数的输出存储在 数字变量。

    【讨论】:

      【解决方案2】:

      列表中项目的位置将对应于元组中图片的位置——即number[0] 将对应于"one.png",等等。

      将其设为字典而不是列表可能更方便:

      number = {
          nr: pyautogui.locateOnScreen(f'{nr}.png', confidence = 0.95)
          for nr in ('one', 'two', 'three', 'four')
      }
      

      键将是nr 字符串('one''two' 等),每个值都是与该特定键关联的locateOnScreen 的结果。

      【讨论】:

      • 使用字典代替列表有什么好处?
      • 如果我使用字典,我将如何启动四个数字之一的操作?
      • start_action(number["one"])?我不确定启动操作的代码是什么样的。使用 dict 的好处是您可以只按名称查找检测到的图像,也可以通过 numbers.items() 遍历名称和图像。
      猜你喜欢
      • 1970-01-01
      • 2020-02-05
      • 2023-03-23
      • 1970-01-01
      • 2015-05-25
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多