Ad
1: 2017-05-17 (水) 07:04:44 njf ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +*itertoolsとは [#qf74f599]
 +プログラムを書いていると、よく多重ループを使う場面が出てきます。
 +例えば、3重ループなら
 +
 + for i in range(2):
 +     for j in range(2):
 +         for k in range(2):
 +             print i,j,k
 +
 +というような物です。
 +3重ぐらいなら特に手で書いても問題ありませんが、それ以上だとネストが深くなって大変です。または何重かわかっていない場合などはそもそも手で書く事はできません。
 +
 +他の言語ではそのような場合、再帰関数を使うのが一般的で、Pythonでも同様のことが出来ます。
 +例えば以下のような関数で、上の多重ループと全く同じ処理が出来ます。
 +
 + def loopFunction(maxLen,maxLoop,loopList = []):
 +     if len(loopList) < maxLoop:
 +         for i in range(maxLen):
 +             l = list(loopList)
 +             l.append(i)
 +             loopFunction(maxLen,maxLoop , l)
 +     else:
 +         for i in loopList:
 +             print i,
 +         print
 + loopFunction(2, 3)
 +
 +この方法だと、好きな数の多重ループも出来ます。
 +しかし、見ての通り、ちょっとコードが複雑になりすぎてしまいます。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3238, today: 1, yesterday: 1
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF