質問: [0,10,20,30,40,50,60,70,80,90] などというリストがあり、 0,10,20だけ(index0から2まで)足す とか 30,40,50,60,70だけ(index4から8まで)足す とかするにはどうすればいいでしょうか? 足す位置と個数は可変(M番目からN個とか)で与えられます。 また、例えば上のsomelistの場合 8番目(index9)から4個とかだとエラーになるので、 4個ならindex6からまででループを止めるには、どうすればいいでしょうか? for i in somelist: だと全体をループしてしまうので、いろいろ検索したりドキュメント読んだりしてみたのですが、リスト途中から任意回だけ計算する方法がわかりませんでした。 よろしくお願いします。
回答: リストの中のある範囲だけをループさせるには [start:end] 形式の抽出表記を使います。 例えばリストの2,3,4番目の要素をループさせる場合・・・ ``` somelist = [0,10,20,30,40,50,60,70,80,90] for n in somelist[2:5]: print n """ 出力結果: 20 30 40 """ ``` このように記述できます。[start:end] の end 位置の要素はループに含まれないことに注意してください。 また、数値リストの要素の合計は sum() で取得できます。 ``` somelist = [0,10,20,30,40,50,60,70,80,90] total = sum(somelist[2:5]) print total """ 出力結果: 90 """ ``` ご参考になれば。