3つの選択肢から2つ選ぶ場合
タプルの場合
タプルでもって3つの要素から、2つを選んでみます。
choose_two = ('A', 'B', 'C')
answer = []
answer.append('A')
answer.append('C')
print(choose_two)
print(answer)
('A', 'B', 'C')
['A', 'C']
リストの場合
書換不能なタプルでなくて、書き換え可能なリストを使った場合、困る場合があります。
もし、プログラムを間違えて書いた場合、
うっかり、answer に append すべきところ choose_two に append してしまったら…
choose_two = ['A', 'B', 'C']
choose_two.append('A')
choose_two.append('C')
answer = []
print(choose_two)
print(answer)
['A', 'B', 'C', 'A', 'C']
[]
上記の様に間違えると、書き換えが起こってしまい、choose_two が書き換えられてしまいます。
そこで…
リストをタプルにしてあると書き換えは起きません(^^♪
タプルの場合を見ますと
choose_two = ('A', 'B', 'C') choose_two.append('A') choose_two.append('C') answer = [] print(choose_two) print(answer)
Traceback (most recent call last): File "/home/ec2-user/environment/Myapp.py", line 2, in <module> choose_from_three.append('A') AttributeError: 'tuple' object has no attribute 'append
上記の様にエラーが返ってきますので、choose_two の書き換えは生じません。
タプルは書換不可(tupleにappendは使えないので)バグを発見しやすくなり、間違いが起こりにくくなります。
コメント