配列とは
配列はデータの箱
配列(Array)は複数の値を箱にいれるためのデータフォーマットです。

インデックスと値
配列はインデックス(Index)と値(value)で構成されます。インデックスは0, 1, 2 .... ,n-1の整数値をとり、n個の値があります。
配列 = [値0, 値1, 値2,... 値n-1];
配列を使わない場合
いくつかの飲み物を定義する例を考えてみましょう。 配列を使わないとデータの種類ごとに変数を用意しなければいけません。
drink1 = "コーヒー"
drink2 = "紅茶"
drink3 = "ほうじ茶"
配列を使った場合
配列を使うと複数のデータを1つの変数にまとめることができます。
タプル(tuple)
タプルとは
リスト(tuple) は複数の要素を一つの変数にまとめるデータ構造の1つです。タプルはimmutable(不変長)といって、一度作成された要素は変更できません。
タプルの初期化
タプル初期化
空のタプルを作成するには、変数に () を代入します。
変数名 = ()
タプル初期化
データつきでタプルを初期化するには () の中に値を設定し、各値は , (カンマ)で区切ります。
変数名 = (値1, 値2, 値3 ...)
要素数で初期化
タプルの要素数で初期化するには、* (アスタリスク)で個数を指定して初期化します。
変数名 = (値) * 個数
タプル作成
変数「drinks」に、タプルをデータ付きで初期化します。
array_list.py
drinks = ("コーヒー", "紅茶", "ほうじ茶")
print(drinks)
タプルのデータが表示されました。このタプルのデータ要素は追加・削除できません。
結果
('コーヒー', '紅茶', 'ほうじ茶')
データ取得
リストの値を取得するにはインデックス(キー) を使います。インデックスは0 からの連番を指定します。
値 = 配列名[index];
キーを指定してデータを取得する
配列の中から「紅茶」を取得してみましょう。

「紅茶」を取得する
「紅茶」は、データの2番目にあるので、index = 1 です。取得したデータをコンソール表示してみましょう。
array_list.py
selectDrink = drinks[1]
print(selectDrink)
結果
紅茶
リスト(list)
リストとは
リスト(list) はタプルと同様のデータ構造ですが、タプルと違うのは追加削除が可能なmutable(可変長)な点です。
リストの初期化
リスト初期化
空のリストを作成するには、変数に [] を代入します。
変数名 = []
リストデータ初期化
データつきで初期化するには [] の中に値を設定し、各値は , (カンマ)で区切ります。
変数名 = [値1, 値2, 値3 ...]
要素数で初期化
リストの要素数で初期化するには、* (アスタリスク)で個数を指定して初期化します。
変数名 = [値] * 個数
リスト作成
変数「drinks」をリストで初期化します。
array_list.py
drinks = ["コーヒー", "紅茶", "ほうじ茶"]
print(drinks)
結果
['コーヒー', '紅茶', 'ほうじ茶']
データ取得
「紅茶」を取得する
「紅茶」は、データの2番目にあるので、index = 1 です。取得したデータをコンソール表示してみましょう。
array_list.py
selectDrink = drinks[1]
print(selectDrink)
結果
紅茶
データ更新
指定したインデックスの値を更新
リストデータの更新はインデックスを指定して、値を代入して更新します。
配列[index] = 値
「紅茶」を「ウーロン茶」で更新
「紅茶」を「ウーロン茶」で更新してみましょう。
array_list.py
drinks[1] = "ウーロン茶"
print(drinks)
結果
['コーヒー', 'ウーロン茶', 'ほうじ茶']
インデックス指定で代入
リストの要素数であらかじめ初期化し、インデックス指定で値を代入します。
array_list.py
numbers = [0] * 3
numbers[0] = 55
numbers[1] = 31
numbers[2] = 72
print(numbers)
結果
[55, 31, 72]
要素数のエラー
要素数より大きいインデックスの代入はできません。
array_list.py
numbers = [0] * 3
numbers[0] = 55
numbers[1] = 31
numbers[2] = 72
# インデックスが指定できない
numbers[3] = 50
結果
Traceback (most recent call last):
...
numbers[3] = 50
演算子
+演算子
リストやタプルで*+* 演算子を利用すると、結合して新しいリストを生成します。
array_list.py
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
numbers = numbers1 + numbers2
print(numbers)
結果
[1, 2, 3, 4, 5, 6]
+演算子
リストやタプルで*+* 演算子を利用すると、要素を繰り返した新しいリストを生成します。
array_list.py
numbers *= 3
print(numbers)
リストが3回繰り返して、新しいリストが生成できました。
結果
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
演習
問題1
変数「prices」をリストで定義して、コンソール表示してみましょう。
データ
[350, 400, 300]
問題2
「prices」から、2番目の値をコンソール表示してみましょう。
問題3
「prices」を2回繰り返して、新しいリストを生成してみましょう。
問題4
「グー」「チョキ」「パー」をランダムにコンソール表示してみましょう。1〜3のランダムな整数は、random.randint() で生成できます。
import random
# 1- 3のランダムな整数
index = random.randint(0, 2)