1

タイトルは少しわかりにくいかもしれませんが、一致した配列内の他のフィールドを「if in」で確認する方法があるかどうか疑問に思っていました。組み込みのものがない場合は、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

基本的に「csvの行[1]と一致したcsv [4] == TRUEの場合:何かをする」という最初のifの方法はありますか?

したがって、基本的には 2 段階のマッチングのように、それが存在し、フィールドの 1 つが何か他のものと等しい場合。

どんな助けでも大歓迎です。

4

1 に答える 1

0

最初に完全な csv をロードする必要があります。現在はそれを繰り返し処理しているだけです。また、あなたがやりたいことは、csv 行のどこかで行 [1] を探すことです。コードは現在、行 [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 に答える