1. ホーム
  2. python

[解決済み] 「Forループの1回目の繰り返し

2023-05-21 15:15:22

質問

ループの最初の反復で関数を実行するエレガントな方法があるかどうか知りたいです。 私が思いつく唯一の可能性は、次のとおりです。

first = True
for member in something.get():
    if first:
        root.copy(member)
        first = False
    else:
        somewhereElse.copy(member)
    foo(member)

どのように解決するのですか?

にはいくつかの選択肢があります。 ヘッド-テール のデザインパターンがあります。

seq= something.get()
root.copy( seq[0] )
foo( seq[0] )
for member in seq[1:]:
    somewhereElse.copy(member)
    foo( member )

またはこれ

seq_iter= iter( something.get() )
head = seq_iter.next()
root.copy( head )
foo( head )
for member in seq_iter:
    somewhereElse.copy( member )
    foo( member )

人々は、quot;redundant foo(member)" コードがあるため、これはどういうわけか "DRY" ではないと泣き言を言います。 それは馬鹿げた主張です。 もしそれが本当なら、すべての関数は一度しか使われないことになります。 もし1回しか参照できないのであれば、関数を定義する意味は何でしょうか?