数字のリスト
今回はPythonで数字のリストを作る方法を解説していきます。
というのも数値のリストを作るというのは、結構基本的なことだと思うのですが、自分自身が何度も調べてしまうことがあったので、それならば一度まとめてみようとなったわけです。
ということで基本を振り返りつつ、まとめていきましょう
range関数
まずは標準ライブラリにある「range関数」です。
数値のリストを作ろうと思った時に、最初に頭に浮かぶ関数だと思います。
使い方は「range(開始, 終了, 差分)」ですが、開始が「0」からの場合は省略可能で、さらに差分も「1」の場合は省略可能です。
ということで最小の書き方は「range(終了)」です。
num_list = range(10)
print(num_list)
for i in num_list:
print(i)
実行結果
range(0, 10)
0
1
2
3
4
5
6
7
8
9
range関数により作成したリストをprint関数で表示しようとすると「range(0, 10)」のように表示されてしまうため、for文を使って表示してみました。
このように終了値として指定した数は「入りません」のでご注意ください。
次に「range(開始, 終了)」のパターン。
num_list = range(1, 10)
for i in num_list:
print(i)
実行結果
1
2
3
4
5
6
7
8
9
次に「range(開始, 終了, 差分)」のパターン。
num_list = range(0, 10, 2)
for i in num_list:
print(i)
実行結果
0
2
4
6
8
ちなみに開始、終了には負の数(マイナスの値)も使うことができます。
num_list = range(-10, 10, 2)
for i in num_list:
print(i)
実行結果
-10
-8
-6
-4
-2
0
2
4
6
8
さらに差分値に負の数を使うことで、降順の数値のリストを作成できます。
num_list = range(10, -10, -2)
for i in num_list:
print(i)
実行結果
10
8
6
4
2
0
-2
-4
-6
-8
ここまでできるとなんでもできそうに思えますが、できないこともあります。
それは小数を使うことができないことです。
例えばよくやるのが、差分を小数にしたくてこんな感じにすることでしょう。
num_list = range(0, 10, 0.1)
for i in num_list:
print(i)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/var/folders/sp/hg7p80kx22s7vct7yb0zl5cm0000gn/T/ipykernel_8875/13328131.py in <module>
----> 1 num_list = range(0, 10, 0.1)
2
3 for i in num_list:
4 print(i)
TypeError: 'float' object cannot be interpreted as an integer
残念ながらrange関数では小数値は扱えないため、エラーが出てしまいます。
そこで小数を扱う場合に出てくるのが次の「arange関数」です。
arange関数
arange関数はnumpyライブラリに含まれる関数です。
そのため使用前にインポートが必要になります。
使い方は先ほどのrange関数と同じで、「arange(開始, 終了, 差分)」です。
import numpy as np
num_list = np.arange(0, 10, 0.1)
print(num_list)
実行結果
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7
1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3. 3.1 3.2 3.3 3.4 3.5
3.6 3.7 3.8 3.9 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5. 5.1 5.2 5.3
5.4 5.5 5.6 5.7 5.8 5.9 6. 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7. 7.1
7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8. 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9
9. 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9]
開始、差分を省略することもでき、その場合は開始値は「0」、差分は「1」となります。
import numpy as np
num_list = np.arange(10)
print(num_list)
実行結果
[0 1 2 3 4 5 6 7 8 9]
つまりnumpyの「arange関数」はrange関数を小数値まで拡大したものと考えればいいでしょう。
linspace関数
上記のrange関数とarange関数は開始値から終了値までをどれだけの差分値でリストを作っていくかというものでした。
それとは別に開始値から終了値までを「何分割するか」という関数もあります。
それがlinspace関数です。
このlinspace関数もnumpyライブラリに含まれる関数なので、最初にnumpyのインポートが必要になります。
そして使い方ですが、「linspace(開始, 終了, 分割数)」です。
import numpy as np
num_list = np.linspace(0, 10, 5)
print(num_list)
実行結果
[ 0. 2.5 5. 7.5 10. ]
「linspace(0, 10, 5)」では0から10までを5分割するということになります。
またrange関数やarange関数と異なり指定した終了値も含まれます。
ということで今回はPythonで忘れがちな数値のリストの作成方法でした。
ではでは今回はこんな感じで。
コメント