既存の精神に基づいて「最も役に立つ C/C++ スニペットは何ですか」- 糸:
皆さんは (頻繁に) 使用していて、StackOverlow コミュニティと共有したい、短い単機能の Python スニペットをお持ちですか? エントリは小さく (おそらく 25 行未満)、投稿ごとに 1 つの例のみを挙げてください。
まず、Python プロジェクトで sloc (ソース コードの行数) をカウントするために時々使用する短いスニペットから始めます。
# prints recursive count of lines of python source code from current directory
# includes an ignore_list. also prints total sloc
import os
cur_path = os.getcwd()
ignore_set = set(["__init__.py", "count_sourcelines.py"])
loclist = []
for pydir, _, pyfiles in os.walk(cur_path):
for pyfile in pyfiles:
if pyfile.endswith(".py") and pyfile not in ignore_set:
totalpath = os.path.join(pydir, pyfile)
loclist.append( ( len(open(totalpath, "r").read().splitlines()),
totalpath.split(cur_path)[1]) )
for linenumbercount, filename in loclist:
print "%05d lines in %s" % (linenumbercount, filename)
print "\nTotal: %s lines (%s)" %(sum([x[0] for x in loclist]), cur_path)
ベストアンサー1
私はany
ジェネレータを使うのが好きです:
if any(pred(x.item) for x in sequence):
...
次のように記述されたコードの代わりに:
found = False
for x in sequence:
if pred(x.n):
found = True
if found:
...
この技術を初めて知ったのはピーター・ノーヴィグ記事。