LoginSignup
takachika555
@takachika555

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

python で文字列を複数の単語で分割して、分割した単語もくっつけて返す

Q&AClosed

解決したいこと

python で文字列を複数の単語で分割して、分割した単語もくっつけて返す
例)イメージです。
A=”厳しいパイソン優しいアナコンダ”
B=re.split('パイソン|アナコンダ',A)

print(B)=['厳しいパイソン','優しいアナコンダ']

自分で試したこと

区切り文字の場合
C=re.split("(。?<=)",'おはよう。こんにちは。こんばんは。')
の場合
'おはよう。'、'こんにちは。'、'こんばんは。'

となりますが、単語バージョンができませんでした。

0

1Answer

re.splitは、第一引数のパターンの中で丸括弧が使われているかどうかで振る舞いを変えます。
https://docs.python.org/ja/3/library/re.html#re.split

>>> s = "厳しいパイソン優しいアナコンダ"
>>> words = re.split('(パイソン|アナコンダ)', s)
>>> words
['厳しい', 'パイソン', '優しい', 'アナコンダ', '']

Bの結果を得るためには、ここから2つずつ取り出して連結すればよいです。

>>> [fst + snd for fst, snd in zip(words[::2], words[1::2])]
['厳しいパイソン', '優しいアナコンダ']

わかりやすく書くとこう。

l = []
for i in range(0, len(words) - 1, 2):
    l.append(words[i] + words[i + 1])
print(l)
1

Comments

  1. @takachika555

    Questioner
    ありがとうございます。できました。

Your answer might help someone💌