Python

【Python】文字列スライス時のオフセットの指定方法

投稿日:

概要

Pythonで文字列を操作する際に毎回オフセット値の指定方法が良くわからなくなるため、検証して整理しました。

Python3系の前提です。

検証用文字列

以下を定義します。

s ='123456789'

スライスの基本

基本は以下のようになります。

s[start : end : step]

startに設定したオフセットの値から抽出される
end に設定した オフセットの一つ前の値までが抽出される
stepに設定した値おきに

初級:部分的なスライス

先頭文字を取り出し

s[0]
> '1'

末尾を取り出し

s[8]
> '9'

s[-1]
> '9'

文字列全体を取り出し

s[:]
> '123456789'

s[0:]
> '123456789'

s[:9]
> '123456789'

s[0:9]
> '123456789'

末尾から一つ前までを取り出し

strtest[:8]
> '12345678'

strtest[:-1]
> '12345678'

s[0:-1]
> '12345678'

中級:ステップによるスライス

1ステップで文全体を取り出し

s[0::]
> '123456789'

s[0::1]
> '123456789'

s[1:9:1]
> '123456789'

一文字毎に文全体を取り出し

s[::2]
>'13579'

s[0::2]
>'13579'

s[0:9:2]
>'13579'

s[:9:2]

>'13579'

上級:マイナスステップによるスライス

末尾から先頭に向かって取り出し

s[::-1]
 >'987654321'

これも同じですが、スタートの指定の仕方が分かりにくい

s[8::-1]
 >'987654321'

イメージとしてはこうです。

endに0を設定すると以下のようになります。

s[8:0:-1]
>'98765432'

これは次のようなイメージ

endに2を設定し、stepに-2を設定すると以下のようになります。

s[8:1:-2]
>'9753'

これは以下のようなイメージ

まとめ

特にマイナスステップの挙動がいまいち理解できていなかったが、何となくイメージはつかめた。

-Python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【Python】tkinterで画像を一定時間ごとに自動切換え

Contents1 目的2 使用ライブラリ3 Step1 : による画像表示4 Step2 : 画像の切り替え5 まとめ 目的 pythonでは簡単にGUIを作成できるライブラリとしてtkinterと …

  ImportError: Missing required dependencies [‘numpy’] の対処

Contents1 概要2 発生事象3 対処法4 念のため5 教訓 概要 windows10上のAnaconda3(python3系)環境でpandasを使用しようとしたところ、以下のエラーが出たため …

【Python】標準偏差と分散の計算

Contents1 目的2 標準偏差3 Pythonによる標準偏差の計算4 分散 目的 以前の記事で四分位偏差によりデータの分散度の計算を行いましたが、四分位偏差ではデータの代表値である四分位数のみを …

Python scikit-learnのImportError

Anaconda3でscikit-learnのdatasetsのimport時にエラーが出たため、対処法についてメモ Contents1 環境2 エラー3 対処 環境 ①OSWindows10 ②An …

【Python】Doc2Vecで類似文書の表示

Contents1 概要2 タスク設定3 使用する諸々4 Step1:データ取得5 Step2:gensimのインストール6 Step3:モデル作成6.1 データ読み込み6.2 形態素解析6.3 学習 …

言語切り替え

カテゴリー