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

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

ただいまの
回答率

90.35%

  • Python

    9187questions

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

  • Python 3.x

    7393questions

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

特定の文字列を見つけて、改行させたいときに、replace("X",\n)がうまくいかない。

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 196

physics303

score 51

特定の文字列を見つけて、そこで、改行を行いたいです。例えば、
employee
という文字に対して、eを\neにしたいです。つまり、

e
mploy
e
e

と出力させたいので、"employee".replace("e","\ne")
としたのですが、

\nemploy\ne\ne

となってしまいます。どうしたらよいでしょうか。

ちなみに、最終的には、(1,3),(4,6),(7,53),(65,143)…というような具合に無作為にタプルが書き出されているファイルを読み込んで
1
3
4
6
7
53
65
143

といった具合に出力させるのが目標です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

表示されるときにエスケープが見えるだけで、実際には改行文字が入っているはずですが。printするとわかります。

>>> s = "employee".replace("e","\ne")
>>> s
'\nemploy\ne\ne'
>>> print(s)

employ
e
e

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

 前半戦

  • 特定の文字列で分割
['', 'mploy', '', '']
  • 空文字列を特定の文字列に戻す
['e', 'mploy', 'e', 'e']
  • 改行で連結
e
mploy
e
e
 出来上がりはこちら
word = "employee"
c = "e"
print("\n".join([s if s else c for s in word.split(c)]))

 後半戦

text = "(1,3),(4,6),(7,53),(65,143)"
print(text.translate(str.maketrans("(),", "\0\0\n")))
1
3
4
6
7
53
65
143

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

最初の文字列内の特定の文字に対して置換をして改行をしたいということについては一応以下で実行できます。あまりきれいな処理とは言えませんが。

x = "employee"
x = x.replace("e", "\ne\n")
x = x.strip().replace("\n\n", "\n")


次のようにも書けます。xは対象の文字列、targetは置換対象の文字列です。
f-stringsを利用しているのでPython3.6以上でなければ動きません。

x = x.replace(target, f"\n{target}\n").strip().replace("\n\n", "\n")

また最終的な目的の方に関しては次のように書けばタプルの各要素を改行して出力できます。ここではタプルのリストを読み込むと仮定しています。

x = [(1, 2), (2, 3), (3, 4)]
for i in x:
    for j in i:
        print(j)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python

    9187questions

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

  • Python 3.x

    7393questions

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