文字列から最後の文字を削除します


510

私の文字列が10文字であるとしましょう。

最後の文字を削除するにはどうすればよいですか?

文字列が次の場合"abcdefghij"'j'文字列に複数の文字が含まれて'j'いる可能性があるため、文字を置き換えたくありません)最後の文字だけを削除します。それが何であるか、または何回発生するかに関係なく、文字列から最後の文字を削除する必要があります。


回答:


834

シンプル:

st =  "abcdefghij"
st = st[:-1]

手順でどのように行われるかを示す別の方法もあります。

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

これは、ユーザー入力の方法でもあります。

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

リストの最後の単語を削除するには:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
はい、st[-1]最後のキャラクターのみですst
キリル

5
実際には、そのスライスstは空であっても機能します。それでも空の文字列が返されますが、エラーは発生しません。
キンダル2013年

1
単語のリストがあり、すべての単語の最後の文字を削除したい場合はどうなりますか?[青、赤、緑] => [blu、re、gree]?
ジェリーズ

5
[i[:-1] for i in ['blue','red','green']]
キリル

3
例を見てみると、それはリストが変更可能であり、そのことを言及する価値がある list.pop()、それは場所で最後の項目を削除するなどの方法で、リストを扱うときに移動するための方法であるO(1)一方で、[:-1]スライスは最後の要素なしにリストのコピーを作成し、O(n-1)時間プラスO(n-1)スペース。文字列は不変です-追加するものはありません。
ドミトリー

19

あなたがやろうとしているのは、Python での文字列スライスの拡張です:

すべての文字列の長さが10で、最後の文字が削除されるとします。

>>> st[:9]
'abcdefghi'

最後のN文字を削除するには:

>>> N = 3
>>> st[:-N]
'abcdefg'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.