Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan dalam Mana-mana Pangkalan dalam Python?

Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan dalam Mana-mana Pangkalan dalam Python?

Linda Hamilton
Lepaskan: 2024-12-05 06:10:18
asal
356 orang telah melayarinya

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

Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan

Dalam Python, fungsi int() dengan mudah mencipta integer daripada rentetan dengan asas yang ditentukan. Walau bagaimanapun, operasi songsang untuk menukar integer kepada rentetan boleh menjadi rumit. Kami berhasrat untuk membangunkan penyelesaian umum, int2base(num, base), yang memenuhi syarat:

int(int2base(x, b), b) == x
Salin selepas log masuk

Berikut ialah penyelesaian yang sangat mudah yang mengendalikan asas sewenang-wenangnya:

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

Fungsi ini menukar nombor n kepada asas b dan mengembalikan senarai digit. Untuk menukar nombor besar kepada asas 577, contohnya:

numberToBase(67854 ** 15 - 102, 577)
Salin selepas log masuk

Ia akan memberikan anda hasil yang betul sebagai senarai:

[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]
Salin selepas log masuk

Mengapa Penyelesaian Ini Berfungsi

Penyelesaian yang disediakan menunjukkan bahawa kadangkala, fungsi tersuai diperlukan apabila fungsi terbina dalam kekurangan fungsi yang diingini. Di sini, int2base() mengatasi had dengan:

  • Mengendalikan asas sewenang-wenang dari 2 hingga infiniti.
  • Mengembalikan senarai digit dan bukannya rentetan, kerana tiada fungsi terbina dalam wujud untuk penukaran asas terus kepada mana-mana asas sewenang-wenangnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Integer dengan Cekap kepada Rentetan dalam Mana-mana Pangkalan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan