Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで数値文字列をK桁ごとの整数に分割する方法

Pythonで数値文字列をK桁ごとの整数に分割したい場合、range関数によるループ処理int()メソッド、そしてappend()メソッドを組み合わせることで簡単に実現できます。この記事では、具体的なサンプルコードとともに、その手順をわかりやすく解説します。

サンプルコード

以下は、数値文字列を4桁(K=4)ごとの整数に分割する実装例です。

my_string = '69426874124863145'

print("The string is : " )
print(my_string)

K = 4
print("The value of K is ")
print(K)

my_result = []
for index in range(0, len(my_string), K):
   my_result.append(int(my_string[index : index + K]))

print("The resultant list is : ")
print(my_result)

print("The resultant list after sorting is : ")
my_result.sort()
print(my_result)

出力結果

The string is :
69426874124863145
The value of K is
4
The resultant list is :
[6942, 6874, 1248, 6314, 5]
The resultant list after sorting is :
[5, 1248, 6314, 6874, 6942]

処理の流れと解説

  • まず対象となる数値文字列を定義し、コンソールに表示します。

  • 分割する桁数「K」の値を定義し、こちらもコンソールに表示します。

  • 分割後の値を格納するための空のリストを用意します。

  • range(0, len(my_string), K) を使うことで、開始位置をK桁ずつ進めながらループ処理を行います。

  • スライス my_string[index : index + K] で部分文字列を切り出し、int() で整数型に変換します。

  • 変換した値を append() メソッドでリストに追加していきます。

  • 最後に、生成されたリストを sort() で昇順に並べ替え、結果をコンソールに出力します。

補足:リスト内包表記を使った簡潔な書き方

同じ処理は、リスト内包表記を使うことでより簡潔に記述することもできます。

my_result = [int(my_string[i : i + K]) for i in range(0, len(my_string), K)]

このように、Pythonでは文字列のスライスと組み込み関数を活用することで、数値文字列の分割処理を数行のコードで効率的に実装できます。文字列の長さがKで割り切れない場合でも、末尾の残りの桁は自動的に1つの要素として処理される点にも注目してください。

  1. Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで

    Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5

  2. Pythonで文字列を単語のリストに変換する方法

    文字列を単語のリストに変換したい場合は、空白文字を基準に文字列を分割するだけで実現できます。最もシンプルな方法は、文字列クラスが標準で提供している split() メソッドを使うことです。このメソッドのデフォルトの区切り文字は空白であり、文字列に対して呼び出すと、空白文字の位置で自動的に分割してくれます。split()メソッドを使う方法引数を指定せずに split() を呼び出すだけで、連続する空白もまとめて処理され、単語ごとのリストが返されます。コード例>>> Please split this string.split() [Please, split, this, st