短い(そして便利な)Pythonスニペット [closed] 質問する

短い(そして便利な)Pythonスニペット [closed] 質問する

既存の精神に基づいて「最も役に立つ 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:
    ...

この技術を初めて知ったのはピーター・ノーヴィグ記事

おすすめ記事