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は他の言語より書き方が規則的だと説明されていたけど、それでもこれだけ違いが出るのか…

誰が書いても同じになることはないのね。


見やすさ、わかりやすさってナンダロウ。

考えさせられるわー

この記事が気に入ったらサポートをしてみませんか?