12,966
回編集
(→概要) |
|||
185行目: | 185行目: | ||
Yesterday, I had sandwich for lunch. | Yesterday, I had sandwich for lunch. | ||
Yesterday, I had steak for dinner. | Yesterday, I had steak for dinner. | ||
</source> | |||
<br><br> | |||
== range関数で反復処理(数値のシーケンス生成) == | |||
for文において、range関数が使用されることがよくある。<br> | |||
range関数は、指定した範囲の数値の順に取得するので、イテラブルなオブジェクトを返すことができる。<br> | |||
<br> | |||
range関数の使用方法は、range(start値, end値, step値)という形でそれぞれの値に数値を指定する。(スライスと同様の使用方法)<br> | |||
<source lang="python"> | |||
for i in range(5): | |||
print(i) | |||
# 出力 | |||
0 | |||
1 | |||
2 | |||
3 | |||
4 | |||
</source> | |||
<br> | |||
次に、range関数のstart値、end値、step値を指定する。<br> | |||
<source lang="python"> | |||
for i in range(1, 10, 3): | |||
print(i) | |||
# 出力 | |||
1 | |||
4 | |||
7 | |||
</source> | |||
<br> | |||
range関数は、list関数を使用してリストに変換することができる。<br> | |||
<source lang="python"> | |||
a = list(range(1, 10, 3)) | |||
print(a) | |||
# 出力 | |||
[1, 4, 7] | |||
</source> | |||
<br><br> | |||
== zip関数で反復処理(複数のシーケンスの反復処理) == | |||
zip関数を使用すると、複数のシーケンスを並列に反復処理することができる。<br> | |||
<br> | |||
以下の例では、複数のリストをzip関数でまとめて、それぞれの位置に対応した変数を出力している。<br> | |||
各リストの共通するインデックスの値が抜き出されて反復処理されている。<br> | |||
3つのリストがここでは全て同じ要素数でしたが、要素数がそれぞれ異なる場合は、一番小さい要素数に合わせたオフセットで反復処理がなされます。 | |||
<source lang="python"> | |||
lang = ["Python", "PHP", "Swift"] | |||
prefix = ["P", "P", "S"] | |||
suffix = ["n", "P", "t"] | |||
for item1, item2, item3 in zip(lang, prefix, suffix): | |||
print(item1, item2, item3) | |||
# 出力 | |||
Python P n | |||
PHP P P | |||
Swift S t | |||
</source> | |||
<br> | |||
上記のサンプルコードをrange関数を使用して記述すると、以下のようになる。<br> | |||
実行すると同様の結果が出力される。<br> | |||
<source lang="python"> | |||
lang = ["Python", "PHP", "Swift"] | |||
prefix = ["P", "P", "S"] | |||
suffix = ["n", "P", "t"] | |||
for i in range(len(lang)): | |||
print(lang[i], prefix[i], suffix[i]) | |||
# 出力 | |||
Python P n | |||
PHP P P | |||
Swift S t | |||
</source> | </source> | ||
<br><br> | <br><br> |