質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

356閲覧

python 文字列の削除

raonarud

総合スコア88

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/04/18 15:00

編集2019/04/18 15:27

文字列の特定の要素以降を削除したいのですがいい方法はありますでしょうか?

pyhton

1a = 'アイスはおいしいいけど食べ過ぎると太る かもしれない' 2 3何らかの処理 4 5print(a) #アイスはおいしいいけど食べ過ぎると太る

このコードのスペースの後のかもしれないを消したいです。

思ったように動いてくれなかったので追加です↓

a = 'アイスはおいしいいけど食べ過ぎると太る かもしれない 絶対そう'
a = a.split(' ')[0]
print(a) # アイスはおいしいいけど食べ過ぎると太る

これが現状なのですが,
a = 'アイスはおいしいいけど食べ過ぎると太る かもしれない'
としたいです。
空白がいくつあっても後ろに最も近い空白の文字以降を消したいです

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

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

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

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

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

guest

回答4

0

ベストアンサー

Python

1a = a.split()[0]

質問編集を受けて

a = アイスはおいしいいけど食べ過ぎると太る かもしれないとしたいです。

空白がいくつあっても最後の'かもしれない'と言う部分だけ切り取りたいです

方法は主に二つ。

  • a.split()[:-1] でリストとして取り出して、''.joinで結合。
  • 正規表現を利用する。

前者の方が扱いやすいですが、後者の方が仕様変更には柔軟です。

投稿2019/04/18 15:11

編集2019/04/18 15:27
LouiS0616

総合スコア35660

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

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

0

SPACE の連続の扱い、文末の SPACE の扱いをどうするかを明確にする必要があります。
たとべ、こんなふう処理ではいかがでしょうか?
x.py

python3

1import re 2 3tests = ( 4 'アイスはおいしいいけど食べ過ぎると太る かもしれない', 5 'アイスはおいしいいけど食べ過ぎると太る かもしれない 絶対そう', 6 '', 7 'a', 8 ' a', 9 'abc efg', 10 'abc efg ', 11 'abc efg ' 12) 13 14for s in tests: 15 print(f' [{s}]') 16 subs = re.sub(r' +\w+ *$', '', s) 17 print(f'-> [{subs}]')

実行結果
イメージ説明

参考情報

  • Pythonで文字列を置換する:replace(), re.sub()

https://uxmilk.jp/8662

投稿2019/04/18 16:25

katoy

総合スコア22324

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

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

0

一つ一つ工程を分解して何が行われているのか理解しながら進めましょう。

python

1a = 'アイスはおいしいいけど食べ過ぎると太る かもしれない 絶対そう' 2 3splited_txt = a.split(' ') # ['アイスはおいしいいけど食べ過ぎると太る', 'かもしれない', '絶対そう'] 4 5splited_txt[0:len(splited_txt)-1] # ['アイスはおいしいいけど食べ過ぎると太る', 'かもしれない'] 6splited_txt[0:-1] # こちらも↑と同じ結果 7 8' '.join(splited_txt[0:len(splited_txt)-1]) # 'アイスはおいしいいけど食べ過ぎると太る かもしれない' 9 10a = ' '.join(splited_txt[0:len(splited_txt)-1])

投稿2019/04/18 15:43

mather

総合スコア6753

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

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

0

replace()を使えばできます。
特定の要素以降という話なら、その要素で切って前の部分を取り出す、とか。

python

1>>> a = 'アイスはおいしいいけど食べ過ぎると太る かもしれない' 2>>> a[:-7] 3'アイスはおいしいいけど食べ過ぎると太る' 4>>> a.replace(' かもしれない', '') 5'アイスはおいしいいけど食べ過ぎると太る' 6 7>>> a.split(' ')[0] 8'アイスはおいしいいけど食べ過ぎると太る' 9

投稿2019/04/18 15:07

編集2019/04/18 15:11
nouken

総合スコア369

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問