Python3でレトロゲームを作る 第3回
*今回の進捗*
2-7 リスト、タプル、辞書
※リスト、タプルのみ(辞書まで辿りつけず)
* * *
今回は、popメソッドで引っかかってしまった。
気になると進めないタチなので、調べることに。
Python解説サイト、予想以上に数多い。
頼もしいわ。
0. pop( )メソッド
ちなみに、del文の代わりにpopメソッド使用しても要素を削除できます。引数には要素の番号を指定します。例えば、animalsの2番目の要素を削除するには「animals.pop(2)」のように記述します。popは対象となるリストを明示するので、appendやinsertと同じメソッドです。
出典:ゲームを作りながら楽しく学べるPythonプログラミング
例題どおり入力してみた。
delはわかる。
popはナゼ削除後のリストではなく、削除すべき引数が表紙されるのだ?
こんなときは、
「OK Googl、Pythonのpopメソッドについて詳しく教えて!」
1. note.nkmk.me
リストのメソッドpop( )で、指定した位置の要素を削除し、その要素の値を取得できる。
先頭(最初)は0。
print(l.pop(0))
# 0
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(3))
# 4
print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]
出典:Pythonでリスト(配列)の要素を削除するclear, pop, remove, del
なるほどー
popは引数を返すのね。
print listの指示を出さないと、削除後のリストは表示されないと。
正しく機械的だわ。
ひとつひとつ懇切丁寧に指示を出す必要があるのね。
でも謎がひとつ。
print(l.pop(3))
# 4
なんで4が引数として返ってくるんだ?
たしか注意することがあったはず。引数のカウント方法で。
喉元まで出かかってるけど…思い出せないので別のサイトを検索。
2. Let's プログラミング
list = ["A", "B", "C", "D"]
list.pop(1)
print list # ["A", "C", "D"]
出典:要素の削除(del文, popメソッド, removeメソッド)
list.pop(1)で"B"が削除されてる。
ということは、"A"が(0)なのか。
それを踏まえて前出のコードを見ると、
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(3))
# 4
pop(0) → 1
pop(1) → 2
pop(2) → 3
pop(3) → 4
となる。
腑に落ちた。
* * *
Pythonは他の言語より書き方が規則的だと説明されていたけど、それでもこれだけ違いが出るのか…
誰が書いても同じになることはないのね。
見やすさ、わかりやすさってナンダロウ。
考えさせられるわー
この記事が気に入ったらサポートをしてみませんか?