Pythonには,タプルと呼ばれるリストによく似た性質をもつデータ型が用意されている。 タプルは,リストと同様に複数の要素を持ち,インデックスで要素にアクセスできるのだが, 要素の変更はできない。
次のプログラムでは,曜日(英語)をタプルで定義し,定義したタプルdayを用いて 月 水 金(英語)の3要素を出力している。
day = ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") print(day[1], day[3], day[5])
H:\prg1\05> python day.py
Monday Wednesday Friday
次のプログラムでは,1年間の各月の日数をリストとタプルに定義したときの例を示している。 試しに実行して,タプルでは次のように2月の日数(要素数)を変更(代入,assignment)する ことはできないことを確認しなさい。
#リストdaysに各月の日数を定義して出力 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] print(days) print(sum(days)) # 1年間の日数を出力 #2月の日数を29に変更して出力 days[1] = 29 print(days) print(sum(days)) # 1年間の日数を出力 #タプルdaysに各月の日数を定義して出力 days = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) print(days) print(sum(days)) # 1年間の日数を出力 days[1] = 29 #これは誤り! print(days) print(sum(days)) # 1年間の日数を出力
H:\prg1\05> python days.py [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 365 [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 366 (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) 365 Traceback (most recent call last): File "tuple.py", line 17, indays[1] = 29 TypeError: 'tuple' object does not support item assignment C:\Users\nagaoka\Desktop\testp>python tuple.py > out.txt Traceback (most recent call last): File "tuple.py", line 19, in days[1] = 29 #これは誤り! TypeError: 'tuple' object does not support item assignment