1

标题可能有点令人困惑,但我想知道是否有办法让我们“如果在”中查看匹配的数组中的其他字段。我想如果没有内置的东西,我只需要手动完成所有操作,而不是使用 is-in。

无论如何,我的代码如下所示:

csv = csv.reader(response)
query = con.fetchall()

for row in query:
    if row[1] in csv:
       do some stuff
    else:
       do some other stuff

有没有办法让第一个 if 基本上是“如果 csv 中的行 [1] 和匹配的 csv [4] == TRUE:做一些事情”?

所以基本上就像两阶段匹配,如果它存在并且其中一个字段等于其他字段。

任何帮助,将不胜感激。

4

1 回答 1

0

您首先需要加载完整的 csv,目前您只是在迭代它。此外,您似乎想要做的是在 csv 行中的某处查找 row[1],您的代码当前正在寻找与 row[1] 匹配的完整 csv 行,我怀疑这是正确的。这是我对您所问问题的回答。

rows = list(reader(response))
query = con.fetchall() # this one you can iterate through, I am just copying what you had
for row in query:
    rs = filter(lambda r: row[1] in r, rows)
    for r in rs:
        if r[4]:
            pass # do some stuff (here)
            break
    else: # this is a for ... else loop
        pass # do some other stuff

我再次对您的实际问题做出了很多假设......如果您澄清您的问题,我也许能够找到更有效的解决方案。

于 2013-05-15T17:05:21.970 回答