【Python】1回の走査で文字列内のスペースを先頭に移動する方法
文字列が与えられたとき、その中のすべてのスペースを文字列の先頭へ移動させるのが今回の目標です。たとえば、文字列にスペースが4つ含まれている場合、その4つのスペースをすべての文字より前にまとめて移動させます。コーディングを始める前に、まずサンプルのテストケースを確認しておきましょう。
テストケース
入力: string = "tutorials point " 出力: tutorialspoint
入力: string = "I am a python programmer." 出力: Iamapythonprogrammer.
それでは、以下の手順に沿って目的を達成していきましょう。
アルゴリズム
- 文字列を初期化します。
- スペース以外のすべての文字を抽出し、変数に格納します。
- 文字列の
count()メソッドを使って、スペースの個数を求めます。 - スペース文字にスペースの個数を掛けた結果を変数に格納します(これで先頭に並べるスペースが完成します)。
- 手順4の変数に、抽出したすべての文字を連結します。
- 最後に結果を出力します。
実装例
## 文字列の初期化
string = "tutorials point "
## スペースを除くすべての文字を抽出
chars = [char for char in string if char != " "]
## count() メソッドでスペースの個数を取得
spaces_count = string.count(' ')
## スペース文字 × 個数 で、先頭に並べるスペースを作成
new_string = " " * spaces_count
## 抽出した文字を新しい文字列に連結
new_string += "".join(chars)
## 結果の出力
print(new_string)
出力
上記のプログラムを実行すると、次のような結果が得られます。
tutorialspoint
続いて、別の入力でも試してみましょう。
別の入力での実行例
## 文字列の初期化
string = "I am a python programmer."
## スペースを除くすべての文字を抽出
chars = [char for char in string if char != " "]
## count() メソッドでスペースの個数を取得
spaces_count = string.count(' ')
## スペース文字 × 個数 で、先頭に並べるスペースを作成
new_string = " " * spaces_count
## 抽出した文字を新しい文字列に連結
new_string += "".join(chars)
## 結果の出力
print(new_string)
出力
Iamapythonprogrammer.
コードのポイント
- リスト内包表記:
[char for char in string if char != " "]の部分で、文字列からスペース以外の文字だけを効率よく取り出しています。 - 文字列の乗算:Pythonでは
" " * 3のように書くだけで、スペース3つ分の文字列を簡単に生成できます。 - join() メソッド:リスト内の各文字を区切り文字なしで1つの文字列に結合しています。
まとめ
このように、リスト内包表記・count() メソッド・文字列の乗算を組み合わせることで、文字列内のスペースをすべて先頭に移動する処理を短いコードで実現できます。プログラムについて不明な点がある場合は、コメント欄でお気軽にお尋ねください。
-
Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法
本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列
-
Python文字列の最大長はどれくらい?メモリと環境による上限を解説
Python文字列の最大長は環境によって決まるPythonにおける文字列の最大長は、理論上の上限よりも、実際に利用できるメモリ容量とPythonの実行環境(32ビットか64ビットか)によって決まります。言語仕様上、文字列の長さは Py_ssize_t 型で管理されており、64ビット環境では最大約9.2×1018(263-1)文字まで扱えることになっています。しかし、現実的にはこの上限に達する前にメモリが足りなくなります。64ビット環境の場合64ビット版のPythonを搭載し、64GBのメモリを備えたマシンであれば、約63GB程度の巨大な文字列でも十分に扱うことが可能です。さらにメモリを増設すれ