参考サイト
はじめに
こんばんは。
最近pythonにお熱の僕です。
初心者ですが・・・
先日退屈なことはPythonにやらせようを読んでpython勉強した(パート1 python基礎編)でpythonの基礎編を勉強してたのですが、そのなかにスライス
という機能がありました。
items = ['ドラえもん', 'のび太くん', 'しずかちゃん', 'ジャイアン', 'スネ夫', 'ドラミちゃん', '出来杉君'] print(items[2:4]); >> ['しずかちゃん', 'ジャイアン']
リストやタプル・文字列から、範囲を指定してデータを取得できる感じかと勝手に思ってたのですが、他にも使い方あるようでした。
参考サイトを見ると、そもそも :を挟んで左側が開始位置、右側は終了位置
という2つではなく
sequence[<開始位置>:<終了位置>:<ステップ幅>]
という、3つめの指定があるようでした。
ほーなるほど。とおもい色々と調べてみました。
こんな使い方ある
1つ飛ばしで取得する
items = ['ドラえもん', 'のび太くん', 'しずかちゃん', 'ジャイアン', 'スネ夫', 'ドラミちゃん', '出来杉君', 'のび太ママ', 'のび太パパ', '先生', 'ジャイ子'] print(items[::2]); >>> ['ドラえもん', 'しずかちゃん', 'スネ夫', '出来杉君', 'のび太パパ', 'ジャイ子']
逆順で取得する
items = ['ドラえもん', 'のび太くん', 'しずかちゃん', 'ジャイアン', 'スネ夫', 'ドラミちゃん', '出来杉君', 'のび太ママ', 'のび太パパ', '先生', 'ジャイ子'] print(items[::-1]); >>> ['ジャイ子', '先生', 'のび太パパ', 'のび太ママ', '出来杉君', 'ドラミちゃん', 'スネ夫', 'ジャイアン', 'しずかちゃん', 'のび太くん', 'ドラえもん'] message = u'ぼくドラえもん!' print(message[::-1]) >>> !んもえラドくぼ
最初と最後だけ取得する
items = ['ドラえもん', 'のび太くん', 'しずかちゃん', 'ジャイアン', 'スネ夫', 'ドラミちゃん', '出来杉君', 'のび太ママ', 'のび太パパ', '先生', 'ジャイ子'] print(items[::len(items) - 1]); >>> ['ドラえもん', 'ジャイ子'] message = u'ぼくドラえもん!' print(message[::len(message) - 1]) >>> ぼ!
pythonおもしろいYO!
なんか他にも使えるやり方あれば教えてください。