Pythonの文字列を扱う方法は多種多様にあります。
その中で今回は、文字列の位置を指定して文字を抽出する方法を紹介します。
「ファイルの名前を取得できたけど頭文字と末尾の数字は必要ない」
など、文字列の必要な部分だけを抽出する場合に使われます。
この記事で紹介する方法はとても簡単に扱えますが、ちょっと混乱する可能性もあるのでしっかり読んでみてください。
![]() |
|
文字列の数(サイズ)を知る方法
文字列の サイズ つまり文字数を知る方法は
len(文字列)
で取得できます。
len()はリスト等のサイズを取得する時に使いますが文字列の文字数(サイズ)を取得する事もできます。
※listについての詳しい解説は別の記事で紹介しています。是非読んでみてください。
Python list 配列を知らないと何も始まらない MAYAアーティストのスクリプト入門
例:
str = "fukushima" print(len(str))
結果:
“fukushima”は9文字なのが分かりました。
この記事で紹介する方法は文字の位置を指定して目的の文字を抽出する方法です。
文字列のサイズ(文字数)を理解した上で先に勧めます。
インデックス 文字列の位置を指定して文字を抽出
文字列のインデックス(文字の位置)を指定して目的の文字を取得するには
文字列[インデックス(文字の位置)]
で取得できます。
例:
str = "kagoshima" print(str[5])
結果:
“kagoshima”のインデックス(文字の位置)「5」 の 「h」 が返されました。
一瞬 5 番目は 「s」 なんじゃないの?
と思ってしまいますが インデックス(文字の位置)は以下の様に表せます。
k | a | g | o | s | h | i | m | a |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
一文字づつ0番目から数えるので、”kagoshima”のインデックス「5」は「h」になります。
これを踏まえて
例:
str = "kagoshima" print(str[-5])
結果:
“kagoshima”のインデックス(文字の位置)「-5」 の 「s」 が返されました。
「-」負の値を指定した場合は文字列の後ろから数えます。
k | a | g | o | s | h | i | m | a |
-9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
-1番目を先頭に「-5」番目が「s」になります。
スライス 文字列の範囲を指定して文字を抽出
文字列から範囲を指定して文字を抽出できる
スライス
という機能があります。
始まりのインデックス(文字の位置)と終わりのインデックス(文字の位置)を指定する
文字列の中から範囲を指定して目的の文字又は文字列を取得するには
文字列[始まりのインデックス(文字の位置):終わりのインデックス(文字の位置)]
と表記します。始まりと終わりのインデックスの間に「:」を記します。
例:
str = "tokushima" print(str[1:5])
結果:
始まりのインデックスと終わりのインデックスの間の文字が抽出されました。
“tokushima”のインデックス番号を表すと
t | o | k | u | s | h | i | m | a |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
これを観るとわかるように、指定したインデックスから取得できる範囲は
始まりのインデックスから終わりのインデックスの前まで
が指定して取得する範囲になります。
始まりのインデックス(文字の位置)又は終わりのインデックス(文字の位置)のどちらかを指定する
始まりのインデックスが0番又は終わりのインデックスが文字列の最後までを指定する場合は省略できます。
その場合は
文字列[始まりのインデックス(文字の位置):]
又は
文字列[:終わりのインデックス(文字の位置)]
と表記します。
例:
str = "hiroshima" print(str[2:]) print(str[:4])
結果:
roshima
#str[:4]
hiro
“hiroshima”のインデックス番号を表すと
h | i | r | o | s | h | i | m | a |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
str[2:]は始まりのインデックス番号「2」からなので 「r」から最後の文字までを表します。
str[:4]は終わりのインデックス番号「4」までなので「s」より前の文字列「h」から「o」までを表します。
インデックス(文字の位置)に「-」負の数字を指定する
例:
str = "hiroshima" print(str[-2:]) print(str[:-4])
結果:
ma
#str[:-5]
hiro
負の数字を指定した”hiroshima”のインデックス番号を表すと
h | i | r | o | s | h | i | m | a |
-9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
str[-2:]は始まりのインデックス番号が「-2」からなので「m」から最後の文字までを表します。
str[:-5]は終わりのインデックス番号が「-5」までなので「s」より前の文字列すべて 「h」から「o」までを表します。
Pythonの文字列処理を使ったMAYAのスクリプト
スクリプト内容
「オブジェクト”pCone”だけを青色に変える」
import maya.cmds as cmds selectedObj_list = cmds.ls(sl=True) for i_obj in selectedObj_list: if "pCone" == i_obj[:5]: cmds.polyColorPerVertex(i_obj,rgb=(0.0, 0.0, 1.0), cdo=True )
解説:
selectedObj_list = cmds.ls(sl=True)
オブジェクトを選択してリストにする
if "pCone" == i_obj[:5]:
i_obj[:5]でオブジェクト名の最初の5文字を抽出。if文で”pCone”の同じ文字列か否かを判別
cmds.polyColorPerVertex(i_obj,rgb=(0.0, 0.0, 1.0), cdo=True )
オブジェクト名の最初の5文字が “pCone” の メッシュオブジェクトを青色に変える。
オブジェクトを全て選択してスクリプトを実行


実行結果:
最初の5文字が “pCone” のオブジェクト名だけが選ばれて青色に変わりました。

まとめ
Pythonの文字列処理の中からスライス「位置を指定して文字を抽出する方法」を紹介しました。
- 文字列の サイズ つまり文字数を知る方法は
len(文字列) - 文字列のインデックス(文字の位置)を指定して目的の文字を取得するには
文字列[インデックス(文字の位置)] - 文字列の中から範囲を指定して目的の文字又は文字列を取得するには
文字列[始まりのインデックス(文字の位置):終わりのインデックス(文字の位置)] - 始まりのインデックス又は終わりのインデックスを省略する場合は
文字列[始まりのインデックス(文字の位置):]
文字列[:終わりのインデックス(文字の位置)]
以上です。
![]() |
|
![]() |
|
BTOパソコンの【FRONTIER】
3DCG/動画編集/そしてゲームプレイにも、高性能PCがお得な価格で購入できます
ウィンターセール\アウトレット・大特価・掘り出し物がズラリ!!/2月10日(水)15時まで
■第10世代 intel Core i7-10700KF + NVIDIA RTX 3070 モデルが159,800円!!
■第10世代 intel Core i7-10700F + NVIDIA GTX 1660 モデルが99,800円!!
他 お買い得PCが沢山!全て台数限定なので売り切れる前に是非
▶最新GPUも格安構成も自由に選べる!パソコン買うならBTOの【FRONTIER】
【デジハリONLINEの 基礎動画 + AdobeCC一年ライセンス のお得プラン】
デジタルハリウッドのオンラインCGスクール「デジハリONLINE」が提供する、60時間の基礎動画とAdobe creative cloudの一年版ライセンスがパッケージされた、お得な講座プラン
「Adobeマスター講座」が36,346円(税別)
PhotoshopやIllustratorなどAdobe製品を超お得な価格で利用できてコスパ最強。

▶︎基礎動画教材付きAdobe Creative Cloudを年額36,346円(税別)のお得な価格で使用する方法
ネットショッピングをする感覚で講座を購入し、動画を視聴して学習するシステムのUdemy
そのUdemyで評価が高いPythonの人気講座といえば、現役シリコンバレーエンジニア「酒井潤」講師の講座。
Pythonの書き方だけでなくシリコンバレー仕込みの Pythonic(パイソニック)と称されるPythonらしいコードの記述方法や実務での所作まで学べます。
「現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル」 ![]() |
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です! |
![]() |
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|