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

Pythonでリスト内のすべての文字列を整数に変換する方法

プログラミングをしていると、リストの中に「'5'」や「'-43'」のように、数値を表す文字列が格納されているケースによく出会います。このようなリストでは、計算処理などを行うために、文字列の要素を実際の整数値へ変換する必要があります。

本記事では、Pythonで文字列のリストを整数のリストに変換する代表的な2つの方法を、サンプルコードと実行結果とともにわかりやすく解説します。

方法1:int()とリスト内包表記を使う

組み込み関数 int() は、引数として渡された値が数値を表す文字列であれば、それを整数型に変換します。リスト内包表記を使えば、リストの各要素に対して int() を簡潔に適用でき、その結果を新しいリストとして取得できます。

サンプルコード

listA = ['5', '2', '-43', '23']
# 元のリスト
print("文字列を含む元のリスト : \n", listA)
# int()を使って変換
res = [int(i) for i in listA]
# 変換後のリスト
print("整数に変換されたリスト : \n", res)

実行結果

文字列を含む元のリスト :
['5', '2', '-43', '23']
整数に変換されたリスト :
[5, 2, -43, 23]

このように、リスト内包表記 [int(i) for i in listA] を使うことで、たった1行のコードですべての文字列要素を整数に変換できます。負の数「-43」も正しく変換されている点に注目してください。

方法2:map()とlist()を使う

もうひとつの定番的な方法は、map() 関数を利用するアプローチです。map(int, listA) と書くことで、リスト内の各文字列要素に対して int() 関数を一括して適用できます。戻り値はイテレータなので、list() で囲むことで通常のリストとして扱えるようになります。

サンプルコード

listA = ['5', '2', '-43', '23']
# 元のリスト
print("文字列を含む元のリスト : \n", listA)
# map()とint()を使って変換
res = list(map(int, listA))
# 変換後のリスト
print("整数に変換されたリスト : \n", res)

実行結果

文字列を含む元のリスト :
['5', '2', '-43', '23']
整数に変換されたリスト :
[5, 2, -43, 23]

どちらの方法を選ぶべきか

両者の違いは主に可読性と用途にあります。

  • リスト内包表記:条件分岐を加えたい場合や、処理内容を明示的に書きたい場合に柔軟性があります。
  • map():単純な変換であればコードが短く、大量のデータを扱う場合にも効率的です。

どちらの方法でも結果は同じになるため、チームのコーディングスタイルや状況に応じて使い分けるとよいでしょう。

  1. Pythonで指定したインデックスリストの要素をまとめて取得する方法

    Pythonでは、リストの個々の要素へアクセスする際に、角括弧 [] とインデックス番号を使用します。しかし、複数のインデックスをまとめて指定して要素を取り出したい場合には、この方法をそのまま使うことができません。そこで、以下に挙げるアプローチを活用します。方法1:2つのリストを使う元のリストとは別に、取得したいインデックスをもう1つのリストとして用意します。そして、リスト内包表記(forループ)でインデックスのリストを順に処理し、その値を元のリストに渡すことで、対応する要素を取り出します。サンプルコードgiven_list = [Mon, Tue, Wed, Thu, Fri] index_

  2. Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け

    Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>