文系プログラマのレムです。
最近個人的なお勉強として言語処理100本ノックやったりしているのですがスライスがめっちゃ便利で感動しています。
普段使ってるJavaではこういう文字列の操作をしないので(勉強不足で知らないだけかも、、、知ってる方教えてください)ちょっとまとめて見ました。
#そもそスライスとは?
スライス表記はシーケンスオブジェクト (文字列、タプルまたはリスト) におけるある範囲の要素を選択します。スライス表記は式として用いたり、代入や del 文の対象として用いたりできます。
引用:http://docs.python.jp/2.7/reference/expressions.html?highlight=%E3%82%B9%E3%83%A9%E3%82%A4%E3%82%B9
なるほど。
プライマリの評価値結果がシーケンス型のオブジェクトでないとダメ皆たいです。
もうちょいわかりやすいやつないかな。。。
#なにはともあれ使ってみる
スライスは開始位置、終了位置、ステップ幅を指定することで文字列の任意の箇所を指定できます。
sequence[開始位置:終了位置:ステップ幅]
またこれらは省略が可能みたいです。
簡単な例で試してみます!
str = u"今日は晴天ですね!"
print (str[::2])
結果:今は天す!
今回はステップ幅を2で指定しているのでこのようになりました。
ステップ幅2の時は要素0番目、要素2番目...というように2つおきによ嘘を取り出します。
ちなみに開始位置は0なので初心者は気をつけないと欲しい要素を取り出せません。
今度は開始位置や終了位置を指定したものです。
str = u"今日は晴天ですね!"
print (str[1:3:])
結果:日は晴
このように開始から終了までの文字列を指定してくれます。
ちなみに終了位置や開始位置、ステップ幅を文字列に存在しないものに指定するとなにも取り出しません
スライスって奥深いですね。
ただ可読性を下げるかもしれないのであんまマイナス値とかで指定するのは良くないかも