logo

Python | Muunna merkkijono tavuiksi

Välimuunnokset ovat tavalliseen tapaan melko suosittuja, mutta muuntaminen merkkijonojen välillä tavuiksi on nykyään yleisempää, koska tiedostojen käsittelyssä tai koneoppimisessa ( Pickle File ) vaadimme laajasti merkkijonojen muuntamista tavuiksi. Keskustellaan tietyistä tavoista, joilla tämä voidaan suorittaa.

Tapa 1: Tavujen (str, enc) käyttäminen Merkkijono voidaan muuntaa tavuiksi käyttämällä yleistä tavutoimintoa. Tämä toiminto viittaa sisäisesti CPython Libraryyn, joka kutsuu implisiittisesti koodaustoimintoa merkkijonon muuntamiseksi määritettyyn koodaukseen.



Python 3






# Python code to demonstrate> # convert string to byte> # Using bytes(str, enc)> # initializing string> test_string>=> 'GFG>is> best'> # printing original string> print>('The original string : '>+> str>(test_string))> # Using bytes(str, enc)> # convert string to byte> res>=> bytes(test_string,>'utf-8'>)> # print result> print>('The byte converted string>is> : '>+> str>(res)>+> ',>type> : '>+> str>(>type>(res)))>



on yhtä kuin merkkijono javassa
>

>

Lähtö:

The original string : GFG is best The byte converted string is : b'GFG is best', type :>

Tapa 2: Encode(enc) käyttö Suositeltavin menetelmä tämän tehtävän suorittamiseen käyttämällä koodaustoimintoa muunnoksen suorittamiseen, koska se vähentää ylimääräistä linkitystä tiettyyn kirjastoon, tämä toiminto kutsuu sitä suoraan.

Python 3




# Python code to demonstrate> # convert string to byte> # Using encode(enc)> # initializing string> test_string>=> 'GFG>is> best'> # printing original string> print>('The original string : '>+> str>(test_string))> # Using encode(enc)> # convert string to byte> res>=> test_string.encode(>'utf-8'>)> # print result> print>('The byte converted string>is> : '>+> str>(res)>+> ',>type> : '>+> str>(>type>(res)))>

lajitella arraylist javassa
>

>

Lähtö:

The original string : GFG is best The byte converted string is : b'GFG is best', type :>

Tapa 2: Muistinäkymän () käyttäminen

Tässä esimerkissä kutsumme my_string-muuttujan encode()-menetelmää sen muuntamiseksi tavuiksi UTF-8-koodauksella. Sitten välitämme tuloksena olevan tavuobjektin memoryview()-funktiolle, joka palauttaa muistinäkymäobjektin, joka tarjoaa näkymän alla olevista tavuista.

Lopuksi kutsumme muistinäkymäobjektin tobytes()-menetelmää luodaksemme uuden tavuobjektin, joka sisältää samat tiedot. Tämä tavuobjekti tallennetaan my_bytes-muuttujaan ja tulostetaan konsoliin.

HUOMAA: memoryview()-toiminto on hyödyllinen tilanteissa, joissa sinun on käytettävä objektin alla olevia tavuja kopioimatta niitä. Se ei kuitenkaan ehkä ole tehokkain tapa yksinkertaiseen merkkijonosta tavuksi muuntamiseen, koska siihen liittyy lisäkustannuksia.

Python 3


merkkijonotaulukko



my_string>=> 'Hello, world!'> #Define a string called my_string with the value 'Hello, world!'.> my_bytes>=> memoryview(my_string.encode(>'utf-8'>)).tobytes()> #Encode the string as bytes using the UTF-8 encoding by calling the encode() method on my_string and passing 'utf-8' as the argument. This will return a bytes object containing the encoded bytes.> #Convert the memoryview object of the bytes object to bytes using the tobytes() method. This creates a new bytes object that is a copy of the original bytes object.> #Print the resulting bytes object using the print() function.#> print>(my_bytes)>

>

>

Lähtö

b'Hello, world!'>

aika monimutkaisuus: O(n),

avaruuden monimutkaisuus: O(n)

Menetelmä 3 : Binascii.unhexlify()-menetelmän käyttäminen:

Algoritmi:

1.Tuo binascii-moduuli
2.Alusta merkkijono, joka sisältää tavujen heksadesimaalimuodon
3.Käytä binascii-moduulin unhexlify()-menetelmää heksadesimaalimerkkijonon muuntamiseen tavuiksi
4.Tulosta muunnetut tavut ja niiden tyyppi.

Python 3


c++ muuntaa in merkkijonoksi



import> binascii> # initializing string> test_string>=> '4766472069732062657374'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # Using binascii.unhexlify()> # convert string to byte> res>=> binascii.unhexlify(test_string)> # print result> print>(>'The byte converted string is : '> +> str>(res)>+> ', type : '> +> str>(>type>(res)))> #This code is contributed by Jyothi pinjala>

>

>

Lähtö

The original string : 4766472069732062657374 The byte converted string is : b'GfG is best', type :>

Aika monimutkaisuus:

Binascii.unhexlify()-menetelmän aikamonimutkaisuus on O(n), missä n on syötemerkkijonon pituus.
Kaikkien muiden tämän koodin operaatioiden aikakompleksisuus on O(1).
Siksi tämän koodin yleinen aikamonimutkaisuus on O(n).

Tilan monimutkaisuus:

Tämän koodin tilamonimutkaisuus on O(1), koska se käyttää vain vakiomäärän lisätilaa syötteen koosta riippumatta.

Menetelmä 5: käyttämällä struct.pack()-menetelmää.

Vaiheittainen lähestymistapa

Tuo struct-moduuli koodiisi.
Alusta 'testimerkkijono' -niminen merkkijono arvolla GFG on paras.
Tulosta alkuperäinen merkkijono käyttämällä print-lausetta.
Käytä bytes()-menetelmää merkkijonon muuntamiseen tavuiksi. Välitä 'test_string'- ja 'utf-8'-koodaus parametreina menetelmälle.
Käytä struct.pack()-menetelmää tavun muuntamiseen binääritiedoksi. Välitä muotomerkkijono '10s' ja tavut parametreina menetelmälle. 10s-muotoinen merkkijono osoittaa, että syötetietoja tulee käsitellä merkkijonona, jonka pituus on 10.
Tallenna tulos muuttujaan 'res'.
Tulosta muunnettu tavumerkkijono ja sen tyyppi print-käskyn avulla.

java tuple

Python 3




import> struct> # initializing string> test_string>=> 'GFG is best'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # Using struct.pack()> # convert string to byte> res>=> struct.pack(>'10s'>, bytes(test_string,>'utf-8'>))> # print result> print>(>'The byte converted string is : '> +> str>(res)>+> ', type : '> +> str>(>type>(res)))>

>

>

Lähtö

The original string : GFG is best The byte converted string is : b'GFG is bes', type :>

Aika monimutkaisuus: Bytes()- ja struct.pack()-menetelmien aikamonimutkaisuus on O(n), jossa n on syötemerkkijonon pituus.

Aputila: Bytes()- ja struct.pack()-menetelmien monimutkaisuus on O(n), jossa n on syötemerkkijonon pituus.