1. ホーム
  2. python

[解決済み] Python 文字列から最後の文字を削除し、それを返す

2022-03-06 11:34:36

質問

可能性があることは承知しています。

>>> a = "abc"
>>> result = a[-1]
>>> a = a[:-1]

さて、私は文字列が不変であることも知っているので、次のようなことも知っています。

>>> a.pop()
c

は不可能です。

しかし、本当にこの方法が望ましいのでしょうか?

どのように解決するのか?

文字列がquot;immutable"であるのには、それなりの理由があるのです:それは、本当に多くの頭痛を軽減し、あなたが考えるよりも頻繁に。また、Pythonがその使用を最適化するために非常にスマートになることもできます。文字列を少しずつ処理したい場合、その一部を split() またはインデックスを使用して2つの部分に分離します。

a = "abc"
a, result = a[:-1], a[-1]

これは、文字列を二つに分割していることを示しています。文字列の各バイトを調べるのであれば、それを繰り返し処理することができます(必要であれば、逆方向にも)。

for result in reversed(a):
    ...

これは少し不自然な感じがすることを付け加えておきます。文字列には何らかの区切り文字がある可能性が高く、その場合は split :

ans = "foo,blah,etc."
for a in ans.split(","):
    ...