リスト
多くのデータを扱う場合は、リスト(配列)を使用すると便利にデータ処理が行えます。
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 横浜 東京 新橋 品川 川崎 横浜
