【问题标题】:How to run two for loops at the same time and make a decision off output如何同时运行两个 for 循环并决定输出
【发布时间】:2019-06-28 17:52:51
【问题描述】:

我正在尝试同时运行两个 for 循环,并从每次传递中做出决定。循环搜索一个 sql 文件并抓取每一行进行比较。

我尝试将循环编织在一起,但没有运气。如果有人对如何执行此操作或如何实现多线程方法有建议。 (我从未尝试过多线程)

for row in rows:
    print(row)
    KnowNextRow = nextrowfinder(str(row))
    print(KnowNextRow)

for perrow in perrows:
    PerfectNextRow = perrow
    print(str(PerfectNextRow))
Search_Procedure(str(row))

#Then compare see if  KnowNextRow == PerfectNextRow after each pass else:     {Code}

如果我用 if 语句运行它,我会得到从 for 循环中提取的最后一行的决定。我想做的是比较每一行并逐行做出决定。

【问题讨论】:

  • 是什么阻止你嵌套循环?
  • 您能否在问题中提供输入和预期输出?

标签: python python-3.x multithreading for-loop


【解决方案1】:

我认为您不需要多线程来获得您想要的结果。只需将输出放入 Python 列表并使用 enumerate 函数循环:

rows_list = []
perrows_list = []

for row in rows:
    print(row)
    KnowNextRow = nextrowfinder(str(row))
    rows_list.append(KnowNextRow)

for perrow in perrows:
    PerfectNextRow = perrow
    xx = (str(PerfectNextRow))
    perrows_list.append(xx)
rows_len = len(rows_list)  #Get length of lists to ensure they are the same
perlen = len(perrows_list) 

for idx, item in enumerate(rows_list):
    if idx < (perlen - 1) # Check that perrows item exists
        if item == perrows_list[idx] 
            print("Rows Match At Row# " + idx) 

【讨论】:

  • 当我尝试这种方法时,我收到一个列表超出范围的错误。
  • 两个列表的长度是否相同?
  • 我编辑了代码以适应不同大小的列表。这就是我能做的所有事情,而无需查看您的其余代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
相关资源
最近更新 更多