Hiiiiiiiiiiii
のような文字列があり、charのチェーンが入っている可能性があります。ここでは複数回繰り返されますi
i
のこのチェーンを1つのi
に置き換えて、を出力として取得してください。また、与えられた単語のeeeeeeemadeeefghddd
という別の例では、emadefghd
を出力したいと思います。これはどのように行うことができますか?Pythonの文字列でcharの反復チェーンを削除する方法
-1
A
答えて
3
かなり単純な正規表現を使用して、文字のすべての繰り返しを文字自体に置き換えることができます。
>>> import re
>>> re.sub(r'(.)\1+', r'\1', 'Hiiiiiiiiiiii')
'Hi'
>>> re.sub(r'(.)\1+', r'\1', 'eeeeeeemadeeefghddd')
'emadefghd'
4
あなたがenumerate()
をstring
をループ使用することができ、ここでitertools
>>> import itertools
>>> s = "Hiiiiiiiiiiii"
>>> ''.join(i for i, _ in itertools.groupby(s))
'Hi'
>>> s = 'eeeeeeemadeeefghddd'
>>> ''.join(i for i, _ in itertools.groupby(s))
'emadefghd'
2
使用し、例えば、その前に1に対して各文字を確認することができます。
s = 'eeeeeeemadeeefghddd'
result = ''
for i, c in enumerate(s):
if i == 0:
result += c
else:
if c != s[i-1]:
result += c
print result
出力:
emadefghd
関連する問題
- 1. リスト内の反復文字列をbashで削除する
- 2. 文字列配列から反復文字列を削除する
- 3. 文字列の文字を反復処理する方法は?
- 4. ファイル内の反復行を削除する方法:python
- 5. Pythonの文字列のリストの反復
- 6. Pythonの各反復ループ文字列で数値をスキップする方法は?
- 7. Pythonの文字列から\ nを削除する方法
- 8. 文字列を削除する方法
- 9. Python:文字列内の文字列パターンを削除する
- 10. Cのポインタポインタcharから文字列を削除する
- 11. typescriptで文字列リテラルタイプを反復する方法
- 12. JavaScriptで文字列を反復する方法は?
- 13. Javaでjson文字列を反復処理する方法
- 14. python:文字列から単語を削除する方法
- 15. 文字列から文字列を削除する方法
- 16. ルア文字列の個々の文字を反復する方法は?
- 17. Netsuite文字列の改行文字/復帰文字を削除する
- 18. 文字列(Python)の3文字のすべてのシーケンスを反復する
- 19. Pythonの文字列のリストを反復する
- 20. 文字列でデータフレームを反復する
- 21. TFS削除された反復データを復元する方法
- 22. Javaで1列の文字列配列を反復する方法
- 23. SQLクエリの削除、余分な行の文字列でCHAR(10)
- 24. Python - リスト文字列のリストを反復する
- 25. 文字列から最後の文字を削除する(Python)
- 26. Pythonの文字列から特殊文字を削除する
- 27. Python - 文字列内の1文字を削除する
- 28. ポインタを使用してchar配列[]から文字を削除/削除する
- 29. F#特定の文字列インデックスのcharを削除/置換
- 30. 文字列からNULL文字を削除する方法
@TimPietzckerああ、このソリューションでは、シーケンスが与えられた文字に対して1回だけ出現することができると仮定しています。 – timgeb
@TimPietzckerは指摘してくれてありがとうございます、それについてはどうしたらいいですか? –
Meh。間違っているわけではありませんが、それほどエレガントではありません。正規表現は、この仕事のための正しいツールです。 –