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

PythonでIPアドレスの先頭ゼロを削除する方法を解説

このチュートリアルでは、IPアドレスから先頭の余分なゼロ(先行ゼロ)を削除するPythonプログラムを作成します。具体的には、255.001.040.001 のようなIPアドレスを 255.1.40.1 の形式に変換する処理を実装していきます。

処理の流れ

以下の手順に沿ってプログラムを組み立てます。

  • 対象となるIPアドレスを文字列として初期化する
  • split() 関数を使い、ピリオド(.)でIPアドレスを分割する
  • 分割した各部分を int 型に変換する(数値化することで先頭のゼロが自動的に除去される)
  • 結合できるように、各部分を再び str 型に戻す
  • join() メソッドですべての部分をピリオドで連結し、結果を出力する

サンプルコード

## IPアドレスを初期化
ip_address = "255.001.040.001"

## split()関数でピリオド区切りに分割
parts = ip_address.split(".")

## 各部分をintに変換して先頭ゼロを除去
parts = [int(part) for part in parts]

## 結合のために各部分をstrに戻す
parts = [str(part) for part in parts]

## join()メソッドでピリオドを挟んで連結
ip_address = ".".join(parts)
print(ip_address)

上記のプログラムを実行すると、次のような結果が得られます。

実行結果

255.1.40.1

より簡潔に書く方法

リスト内包表記を一行にまとめれば、さらに短く記述できます。

ip_address = "255.001.040.001"
ip_address = ".".join(str(int(part)) for part in ip_address.split("."))
print(ip_address)  # 255.1.40.1

また、map() を使えば、intへの変換とstrへの再変換を一度に行うことも可能です。

ip_address = "255.001.040.001"
ip_address = ".".join(map(lambda x: str(int(x)), ip_address.split(".")))
print(ip_address)  # 255.1.40.1

どちらの方法でも結果は同じですが、コードの可読性やチームのコーディング規約に合わせて選択するとよいでしょう。

プログラムについてご不明な点がありましたら、ぜひコメント欄でお知らせください。

  1. 【Python】セットから要素を削除するプログラム:pop()メソッドの使い方

    「集合(セット)」という言葉は、数学の世界でもおなじみですね。Pythonにおけるセットは、数学の集合に相当するデータ構造です。セットにはさまざまな要素を格納でき、要素の順序は定義されません(順序を持たないコレクションです)。セットでは要素の追加や削除が自由に行え、要素の反復処理のほか、和集合・積集合・差集合といった標準的な集合演算も実行できます。この記事では、セットから要素を削除する方法を解説します。ここでは pop() メソッドを使用します。pop() はPythonの組み込みメソッドで、セットから要素を1つずつ取り出しながら削除していくために使われます。実行例NEW SET IS ::&

  2. 【初心者向け】Pythonで文章から重複する単語をすべて削除する方法

    プログラミングでは、与えられた文章から重複する単語を取り除いて整理したい場面がよくあります。本記事では、Pythonの標準ライブラリ「collections.Counter」を活用して、文章内の重複単語を効率的に削除する方法を解説します。処理の概要たとえば、次のような文章が与えられたとします。入力:I am a peaceful soul and blissful soul. 出力:I am a peaceful soul and blissful.このように、「soul」という単語が2回出現している場合、2回目以降の出現を削除し、各単語が1回だけ含まれる文章を作成します。アルゴリズムの手順重