2

Python で長期にわたるリスト内包表記がある場合は、次のように言います。

from itertools import combinations

print [w for w in (''.join(c) for c in combinations(words, 2)) if sorted(w) == letters]

ここで、words は 200000 語のリストで、liters は文字のリストです。これまでに処理された単語数やその他の形式の進捗レポートを時折印刷する方法はありますか?

4

3 に答える 3

1

これは、進行状況をログに報告できるジェネレーターです。

def log_every(seq, every):
    for i, x in enumerate(seq):
        if (i + 1) % every == 0:
            logging.info('Generated %d', i)
        yield x

次のように使用します。

for c in log_every(combinations(words, 2), 2000):
    ...
于 2013-02-02T11:34:08.687 に答える