tuple(タプル)
リストは変更可能です(ミュータブル)。つまり、
l[1] = 100
のように要素を変更することができます。Python はリストの代わりに tuple
(タプル)を提供しており、これは各要素が変更されないことを保証します。タプルは、要素同士が密接に関連しており、一つの要素が更新されると情報全体が変化するような場合に主に使用されます。そのため、タプル全体を更新すべきです。box = (20, 30, 50)
print('height:', box[0])
print('width:', box[1])
print('depth:', box[2])
ここでは、リストで使っていた角括弧
[]
の代わりに括弧 ()
を使用することだけが違いであることに注意してください。括弧を省略して box = 20, 30, 50
と書くこともでき、まったく同じタプルになります。タプルは変更できません。要素を追加するための
append
や add
メソッドも持っていません。box
の高さを変更しようとすると、タプル全体を変更する必要があります。box = (20, 30, 50)
box[0] = 10 # TypeError: 'tuple' object does not support item assignment
box = (10, 30, 50) # OK
box = 10, 30, 50 # OK
タプルの要素を簡単に展開する方法もあります。
box = 20, 30, 50
height, width, depth = box
print('height:', height)
print('width:', width)
print('depth:', depth)
height, width, depth = 20, 30, 50
print('height:', height)
print('width:', width)
print('depth:', depth)
チャレンジ
1行のコードで複数の入力を読み取ることができるのをご存知ですか?
name, height = input(), int(input())
これはタプルと値の展開のおかげで可能です。
n
人の患者の記録を読み取り、その統計を報告するよう求められています。今回は、記録には患者の名前と各患者の体重が含まれています。全患者の平均体重を報告し、各患者が平均よりどれだけ上回っているか、または下回っているかを報告してください。入力の最初の行には、患者の人数を表す整数
n
が含まれます。次の行以降は、患者の名前とその次の行に体重が含まれます。プログラムはまず平均体重を出力し、その後、患者の名前とコロンを続けて出力します。体重が平均以上の場合は
X above average
、平均未満の場合は X below average
と表示します。入力 | 出力 |
3
Anna
50
Bob
80
Simon
71 | 67
Anna: 17 below average
Bob: 13 above average
Simon: 4 above average |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB