Pyrhon♪リストのインデックス指定とスライスの例題

ゆうちゃんとのPythonの勉強もリストのスライスを覚えるところまで進みました。スライスはリスト操作において大変便利な機能ですのでしっかりと覚えましょう。なお、Pythonのチュートリアルの図は増分がマイナスの時には使えないので注意しましょう。

「ゆうちゃん。今日はリストのスライスを勉強するんだけど、私が自分の勉強用に作った記事を使うよ~」と言うと、「やった~。追いついてきたね!」と喜んでいました。

確かに、ゆうちゃんとPythonシリーズの最初の方で作ったHello, World!の記事は、自分用に作ろうとは思わないけれど、このくらいになると本当に追いついてきたね。地味~に文法の勉強を進めている状況で、よくぞ、ついてきてくれました。

それでは、今日もPythonの勉強始めましょう! ゆうちゃんのために例題を用意したから、リンク先のスライスの記事をしっかり読んだあとに解いてみてね。

0.ゆうちゃんとPythonシリーズ

この記事は「ゆうちゃんとPythonシリーズ」の記事です。一連の記事は、以下のリンク集を参照してください。

中学生のゆうちゃんとPythonシリーズ

なお、それぞれの記事は、シリーズの中でそれまでに習った文法を使ってサンプルコードを考えています。実際には、もっと、効率のよい書き方があるかもしれませんが、ご了承ください。

1.リストのインデックス指定とスライスによる範囲指定

リストのインデックス指定とスライスによる範囲指定は、以下の記事を参照してください。ゆうちゃんとの勉強用に図を入れ替えたりして、全面的にリニューアルしました。ホームページを始めたころの記事だったこともあり、読みやすくなったと思います。

リストのインデックス指定とスライス。stepが負のときは注意!

2.例題

さて、上記の記事の例題です。しっかりと頭を整理してから問題を解くようにしましょう。ゆうちゃんは「完璧!」って言ってるけど大丈夫かな?

かなり、あやしい・・・

(1) 例題1 インデックス指定

コード01の出力は出力01のようになりました。■と●に違う数字を入れてコードを完成しましょう。なお、答えを見る前にコードを実行して確かめましょう。

#コード01
x = ['a', 'b', 'c', 'd', 'e']
print(x[■])
print(x[●])
#出力01
b
b
解答の表示・非表示の切り替え

※ブラウザによっては最初から表示されてしまいます。(Google Chrome推奨)

正のインデックスで指定するときはx[1]、負のインデックスで指定するときはx[-4]となります。

#解答01
x = ['a', 'b', 'c', 'd', 'e']
print(x[1])
print(x[-4])

(2) 例題2 基本的なスライスの使い方

コード02で出力される要素を答えましょう。

#コード02
x = ['a', 'b', 'c', 'd', 'e']
print('x =', x)
print('x[2:4] ='   , x[2:4])
print('x[:4] ='    , x[:4])
print('x[2:] ='    , x[2:])
print('x[:] ='     , x[:])
解答の表示・非表示の切り替え

※ブラウザによっては最初から表示されてしまいます。(Google Chrome推奨)

コード02の出力は出力02のようになります。いずれも、よく使う形なのでしっかり覚えましょう。

#出力02
x = ['a', 'b', 'c', 'd', 'e']
x[2:4] = ['c', 'd']
x[:4] = ['a', 'b', 'c', 'd']
x[2:] = ['c', 'd', 'e']
x[:] = ['a', 'b', 'c', 'd', 'e']

(3) 例題3 増分が1より大きい場合

コード03で出力される要素を答えましょう。

#コード03
x = ['a', 'b', 'c', 'd', 'e']
print('x =', x)
print('x[:4:2] ='  , x[:4:2])
print('x[1::2] ='  , x[1::2])
print('x[::2] ='   , x[::2])
解答の表示・非表示の切り替え

※ブラウザによっては最初から表示されてしまいます。(Google Chrome推奨)

後ろの「:2」の部分が増分stepです。増分stepが1ではない時には省略することができません。

#出力03
x = ['a', 'b', 'c', 'd', 'e']
x[:4:2] = ['a', 'c']
x[1::2] = ['b', 'd']
x[::2] = ['a', 'c', 'e']

(4) 例題4 増分がマイナスの場合

コード04で出力される要素を答えましょう。

#コード04
x = ['a', 'b', 'c', 'd', 'e']
print('x =', x)
print('x[:-4:-1] =', x[:-4:-1])
print('x[-2::-1] =', x[-2::-1])
print('x[::-1] ='  , x[::-1])
解答の表示・非表示の切り替え

※ブラウザによっては最初から表示されてしまいます。(Google Chrome推奨)

出力04では、リストの要素の順番が逆になっています。

#出力04
x = ['a', 'b', 'c', 'd', 'e']
x[:-4:-1] = ['e', 'd', 'c']
x[-2::-1] = ['d', 'c', 'b', 'a']
x[::-1] = ['e', 'd', 'c', 'b', 'a']

テキスト2

(5) 省略するときのポイント

下式を見てください。最後のstepを省略するときはstepの前の「:」と一緒に省略することに気をつけましょう。一方、startやstopを省略するときには数字だけを省略します。

例えば例題4のx[::-1]は、コロンが2つも並んで不思議な感じがするかもしれませんが、startとstopが省略されています。

さて、いかがだったでしょうか。省略の方法と増分がマイナスのときの方法がわかれば、難しくないのではないでしょうか。

私が実際に購入した教材のご紹介

以下、私が実際に購入したPythonの教材をまとめてみました。 Pythonを学習する上で、少しでもお役に立つことができればうれしいです。

Python♪私が購入したPythonの書籍のレビュー

UdemyのPythonの動画講座を書籍を買う感覚で購入してみた