たとえば、次のような文字列があるとします。「こんにちは、今日はお元気ですか、ジョー」どうすれば定期的にスペースを挿入できますか? たとえば、次の手順で range 関数を使用してスペースを挿入したいとします: range(0,27,2)。したがって、次のようになります。
"He ll o ho w ar e yo u to da y Jo e"
これで、最後まで 2 つおきのインデックスにスペースができました。どうすればこれを行うことができますか?ありがとう。
たとえば、次のような文字列があるとします。「こんにちは、今日はお元気ですか、ジョー」どうすれば定期的にスペースを挿入できますか? たとえば、次の手順で range 関数を使用してスペースを挿入したいとします: range(0,27,2)。したがって、次のようになります。
"He ll o ho w ar e yo u to da y Jo e"
これで、最後まで 2 つおきのインデックスにスペースができました。どうすればこれを行うことができますか?ありがとう。
この特定のケースに対する最も簡単なアプローチは次のとおりです。
s = 'Hello how are you today Joe'
s = " ".join(s[i:i+2] for i in range(0, len(s), 2))
これにより、最初に文字列が 2 文字ずつのチャンクに分割され、次にこれらのチャンクがスペースで結合されます。
それを行う別の方法
>>> ''.join(e if (i+1)%2 else e+" " for (i,e) in enumerate(list(s)))
'He ll o ho w ar e yo u to da y Jo e'
これはすべてを行います!
>>> def insert_spaces(text, s_range):
return ' '.join(text[start:end] for start, end in
zip([0] + s_range, s_range + [len(text)])).strip()
質問の例:
>>> insert_spaces('Hello how are you today Joe', range(0, 27, 2))
'He ll o ho w ar e yo u to da y Jo e'
starts
、、steps
およびstops
:が異なる他の例
>>> insert_spaces('Hello how are you today Joe', range(5, 20, 4))
'Hello how are you today Joe'
>>> insert_spaces('Hello how are you today Joe', range(0, 27))
'H e l l o h o w a r e y o u t o d a y J o e'
>>> insert_spaces('abcdefghijklmnopqrstuvwxyz', range(0, 16, 5))
'abcde fghij klmno pqrstuvwxyz'