Python

リスト

多くのデータを扱う場合は、リスト(配列)を使用すると便利にデータ処理が行えます。

1次元リスト

1次元リストを確保します。リストにはリスト名を付けます。ここでは「a」「b」というリストを用意しています。初期値もリストの確保と同時に設定します。
a=[0]*3
b=[None]*3

print(a[0])
print(a[1])
print(a[2])

print(b[0])
print(b[1])
print(b[2])
0
0
0
None
None
None

2次元リスト

2次元リストは座標上の値など、2つの指標から指定されるデータを扱う場合に使用します。ここでは、「2行3列」のリストを確保し、数値を入力しています。 2つの手法を示します。
a = [[0] * 3 for i in range(2)]

a[0][0]=1
a[0][1]=2
a[0][2]=3
a[1][0]=4
a[1][1]=5
a[1][2]=6

print(a[0][0])
print(a[0][1])
print(a[0][2])
print(a[1][0])
print(a[1][1])
print(a[1][2])

print(a)
1
2
3
4
5
6
[[1, 2, 3], [4, 5, 6]]
# 1次元リストを生成
a=[None]*2

# 1次元リストから2次元リストを生成
for i in range(2):
	a[i]=[None]*3

a[0][0]=1
a[0][1]=2
a[0][2]=3
a[1][0]=4
a[1][1]=5
a[1][2]=6

print(a[0][0])
print(a[0][1])
print(a[0][2])
print(a[1][0])
print(a[1][1])
print(a[1][2])

print(a)
1
2
3
4
5
6
[[1, 2, 3], [4, 5, 6]]

2次元リストのリスト確保方法による違い

2次元リストはリストの確保の仕方により、リスト構造が異なります。
a = [[0] * 3 for i in range(2)]
b = [[0] * 3] * 2

a[0][0]=1
a[0][1]=2
a[0][2]=3
a[1][0]=4
a[1][1]=5
a[1][2]=6

b[0][0]=10
b[0][1]=20
b[0][2]=30
b[1][0]=40
b[1][1]=50
b[1][2]=60

print(a[0][0])
print(a[0][1])
print(a[0][2])
print(a[1][0])
print(a[1][1])
print(a[1][2])

print(b[0][0])
print(b[0][1])
print(b[0][2])
print(b[1][0])
print(b[1][1])
print(b[1][2])

print(a)
print(b)
1
2
3
4
5
6
40
50
60
40
50
60
[[1, 2, 3], [4, 5, 6]]
[[40, 50, 60], [40, 50, 60]]

2次元リストの使用例

掛け算九九の結果をまずリストに格納し、その後にまとめて表示します。
# 9*9の2次元リストを確保
k=[[None]*9 for i in range(10)]

# iは1から9まで変化
# jは1から9まで変化
# k[i-1][j-1]はk[0][0]からk[8][8]まで変化

# 計算結果をリストに格納
for i in range(1, 10):
    for j in range(1, 10):
        k[i-1][j-1]=i*j

# リストに格納した計算結果を表示
for i in range(1, 10):
    for j in range(1, 10):
        print('%3.0f' %k[i-1][j-1], end='')
    print('')
  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

テキストファイルへの書き込み

キーボードから入力した内容をテキストファイルに書き込む。
# ファイルを開く
file=open('eki.txt', 'w', encoding='UTF-8')

# データの数をキーボードから入力
n=int(input("データの数を入力して下さい:"))

# データをキーボードから入力し、ファイルに1行ごとに書き込む
for i in range(0, n):
    i=input("データを入力して下さい:")
    file.write(i+"\n")

# ファイルを閉じる
file.close()

テキストファイルの中身の読み込み

テキストファイルの中身を読み込んで内容を表示する。
# ファイルを開く
file=open("eki.txt", mode="r")

# ファイルの中身を一括で読み込み、1行ごとに変数「line」に格納する
lines=file.readlines()

# 変数nの値とリスト「line」の中身を表示する
for n in range(0,5):
    print(n,lines[n])

# ファイルを閉じる
file.close()

# 変数「n」の値とリスト「line」の中身を表示する(再表示)
print(lines[0])
print(lines[1])
print(lines[2])
print(lines[3])
print(lines[4])
eki.txt
東京
新橋
品川
川崎
横浜
0 東京
1 新橋
2 品川
3 川崎
4 横浜

東京
新橋
品川
川崎
横浜