Pythonで整数を反復処理するためのベストプラクティスは何ですか?私は頻繁にそうする必要があることに気づきました。通常、詳細な結果が得られます。たとえば、プロジェクトオイラーの問題のために私が書いた2つの関数は次のとおりです。
def is_permutation_of(n, m):
""" Return True if n is a permutation of m, else False
"""
if len(str(n)) != len(str(m)):
return False
for d in str(n):
if d not in str(m):
return False
return True
そして別の:
def has_even_digit(n):
""" Return True if n has an even digit, else False
"""
evens = ['0', '2', '4', '6', '8']
for e in evens:
if e in str(n):
return True
return False
冗長性に加えて、1)各型変換に関連する計算コストが必要であり、2)完全にエレガントでないと感じます。この問題に対処する別の方法はありますか?私はこれらの関数を完全に間違った方法で実行していますか?つまり、整数を反復処理する必要はありませんか?
助けてくれてありがとう。