6
6

More than 5 years have passed since last update.

pythonでスライス使いになる!

Last updated at Posted at 2017-12-08

まずはlist(arrayでも大丈夫です!)を用意します。


#my_list = [0,1,2,3,4,5,6,7,8,9]と同じ


#リスト内包表記の場合
my_list  = [i for i in range(10)]
print(my_list)

#[0,1,2,3,4,5,6,7,8,9]

@shiracamus さんにおしえていただいたほうがきれいに書けるので、追加します!!

my_list = list(range(10))


print(my_list)
#[0,1,2,3,4,5,6,7,8,9]

リスト内包表記で作ったリストを使ってご説明します!
リスト内包表記については、この記事をご参照ください(^^)
me: ゼロから始めるデータサイエンス 1章で使うリスト内包表記のエラーについて

1つ目の引数を指定する

my_list[1:]
#[1, 2, 3, 4, 5, 6, 7, 8, 9]


my_list[0:]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

第一引数では、リスト内の何番目の数から返すか指定できるのですね!
今回のリストは0から始まり9番目で終わる10個の数字なので、その点にご注意ください!

引数にマイナスを取った場合

後ろから-n個の数字をとってくることが出来ます!



my_list[-1:]
#[9]

my_list[-2:]
#[8, 9]

2つ目の引数を指定する

my_list[1:10]
#[1, 2, 3, 4, 5, 6, 7, 8, 9]


my_list[1:4]
#[1,2,3]

第二引数はリスト内の何番目まで取り出すか指定できそうです!

ちなみに引数を指定しないと、こうなります

#すべての引数を指定しない場合
my_list[:]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


#第一引数のみ指定しない場合
my_list[:5]
#[0, 1, 2, 3, 4]

引数にマイナスを取った場合

 my_list[:-8]
#[0, 1]

# my_list[:2]のときと同じ出力結果になります!
#[0, 1]

3つ目の引数を指定する

#第3引数に2を指定した場合
my_list[1:10:2]
#[1, 3, 5, 7, 9]
#リスト内から2つ飛ばしで表示されます!


#第3引数に3を指定した場合
my_list[1:10:3]
#[1, 4, 7]
#リスト内から3つ飛ばしで表示されます!

引数を指定しないバージョンと、引数にマイナスを取った場合はこんな感じです。

#3つの引数を指定しない場合
my_list[::]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


#引数にマイナスを指定した場合
my_list[::-1]
#[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]


#3つめの引数のみ指定した場合
my_list[::2]
#[0, 2, 4, 6, 8]

参考:@ycctw1443 さん【Pythonのスライスについて

6
6
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6