ホームページ >バックエンド開発 >Python チュートリアル >Python で任意の基数の整数を文字列に効率的に変換するにはどうすればよいですか?

Python で任意の基数の整数を文字列に効率的に変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-05 06:10:18357ブラウズ

How Can I Efficiently Convert Integers to Strings in Any Base in Python?

任意の基数で整数を文字列に変換する

Python では、int() 関数は、指定された基数を持つ文字列から整数を簡単に作成します。ただし、整数を文字列に変換する逆の操作は難しい場合があります。私たちは、次の条件を満たす一般的なソリューション int2base(num,base) を開発することを目指しています。

int(int2base(x, b), b) == x

これは、任意の基数を処理する驚くほど単純なソリューションです。

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]

この関数数値 n を基数 b に変換し、数字のリストを返します。たとえば、大きな数値を基数 577 に変換するには:

numberToBase(67854 ** 15 - 102, 577)

リストとして正しい結果が得られます:

[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]

このソリューションが機能する理由

提供されたソリューションは、組み込み関数に必要な機能がない場合にカスタム関数が必要になる場合があることを示しています。ここで、int2base() は次の方法で制限を克服します。

  • 2 から無限大までの任意の基数を処理します。
  • 組み込み関数が存在しないため、文字列ではなく数字のリストを返します。任意の塩基への直接塩基変換。

以上がPython で任意の基数の整数を文字列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。