[Python]int型に変換!splitメソッドで文字列を最初だけ分割する

splitとは

Pythonには文字列を分割するためのsplitメソッドがあります。

splitメソッドは、指定した区切り文字で文字列を分割して、分割された文字列のリストを返します。

例えば、以下のコードを実行すると、カンマで区切られた文字列が分割され、分割された文字列のリストが返されます。

str = "apple,banana,orange"
fruits = str.split(",")
print(fruits)

出力結果は以下のようになります。

['apple', 'banana', 'orange']

int型への変換とその必要性

splitメソッドで分割された文字列は、文字列として扱われます。

しかし、数値計算をする際には、分割された文字列をint型(整数型)に変換する必要があります。

int型に変換することで、数値計算が可能になります。

以下のコードは、分割された文字列をint型に変換し、数値計算をする例です。

str = "1,2,3,4,5"
numbers = str.split(",")
sum = 0
for n in numbers:
    sum += int(n)
print(sum)

出力結果は15になります。

splitメソッドでの文字列分割の基本

splitメソッドは、以下のように書式化されています。

str.split(sep=None, maxsplit=-1)

引数の説明は以下の通りです。

  • sep: 分割する区切り文字。省略すると空白文字が区切り文字になります。
  • maxsplit: 最大分割数。省略すると-1が設定され、分割される回数に制限がありません。

以下のコードは、sepを指定せずに空白文字で分割する例です。

str = "apple banana orange"
fruits = str.split()
print(fruits)

出力結果は以下のようになります。

['apple', 'banana', 'orange']

splitメソッドを使用して最初だけを分割する方法

splitメソッドを使用して、最初だけを分割するには、以下のように書きます。

str = "apple,banana,orange"
first_fruit, rest_fruits = str.split(",", 1)
print(first_fruit)
print(rest_fruits)

出力結果は以下のようになります。

apple
banana,orange

2つ目の引数に1を指定することで、1回だけ分割を行うことができます。

分割された最初の要素はfirst_fruit変数に格納され、残りの要素はrest_fruits変数に格納されます。

int型に変換した後のデータの扱い方

int型に変換した後のデータは、数値として扱われます。

以下のコードは、int型に変換した後のデータを使って数値計算をする例です。

str = "1,2,3,4,5"
numbers = str.split(",")
sum = 0
for n in numbers:
    sum += int(n)
average = sum / len(numbers)
print(average)

出力結果は以下のようになります。

3.0

splitメソッドとint型変換を活用した実践的な例

以下のコードは、CSVファイルからデータを読み込み、特定の列のデータをint型に変換して平均を求める例です。

import csv
# CSVファイルの読み込み
with open("data.csv", "r") as f:
    reader = csv.reader(f)
    # ヘッダー行を読み飛ばす
    next(reader)
    sum = 0
    count = 0
    # 特定の列のデータをint型に変換して平均を求める
    for row in reader:
        value = int(row[2])
        sum += value
        count += 1
    average = sum / count
    print(average)

まとめ

Pythonのsplitメソッドを使用することで、文字列を分割することができます。

int型に変換することで、数値計算が可能になります。

splitメソッドで最初だけを分割するには、2つ目の引数に1を指定します。

int型に変換した後のデータは、数値として扱われます。

splitメソッドとint型変換を活用することで、実践的なプログラムを作成することができます。