🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

1136閲覧

Python rindexメソッドの値が左から数えた値として返却してしまう理由

dendenmushi

総合スコア98

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/09/10 02:04

編集2019/09/10 02:05

非常に単純なメソッドにて不思議な事象が発生しました。

python

1file_test = "201900122548-5412-1.jpg" 2kanma_iti = file_test.rindex('.')

起こったこと

想定は4が返却値として帰ってくるはずですが、indexメソッドでもないのに左からの数えた数値が返ってきました。
いろいろなサイトをみて確認してますがまったく原因がつかめません。いったいどんな理由なのかアドバイス頂けないでしょうか。

環境

OS:win10 64bit
Python3.7
local上にpyプログラムを置き実行

試したこと

indexメソッドでも試したところまったく同じ値が返ってきました。
str(201900122548-5412-1.jpg)にしても結果は同じでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

indexもrindexも、常に左から数えます
違いは探索方向だけです。

Python

1>>> '2019.09.10'.index('.') # 頭から探索 24 3>>> '2019.09.10'.rindex('.') # 尻から探索 47

######str.rfind(sub[, start[, end]])

文字列中の領域 s[start:end] に sub が含まれる場合、**その最大のインデックスを返します。**オプション引数 start および end はスライス表記と同様に解釈されます。 sub が見つからなかった場合 -1 を返します。

######str.rindex(sub[, start[, end]])

rfind() と同様ですが、 sub が見つからなかった場合 ValueError を送出します。

引用元: 組み込み型 — Python 3.7.4 ドキュメント太字は引用者によるもの。


想定は4が返却値として帰ってくるはず

もし右から数えたとしても、0-basedならば返り値は3でしょう。

投稿2019/09/10 02:08

編集2019/09/10 02:15
LouiS0616

総合スコア35668

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2019/09/12 05:28

詳細ありがとうございました。
guest

0

そりゃ'.'の位置を返してるんだからそうなるでしょう。
右から探すだけのはなしです

投稿2019/09/10 02:08

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2019/09/12 05:29

ありがとうございました。
guest

0

想定は4が返却値として帰ってくるはずですが

いえ、rindexでも左から数えたインデックスを返します。

投稿2019/09/10 02:07

maisumakun

総合スコア145967

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendenmushi

2019/09/12 05:29

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問