Interkonverteringer er som vanlig ganske populære, men konvertering mellom en streng til bytes er mer vanlig i disse dager på grunn av det faktum at for håndtering av filer eller Machine Learning ( Pickle File ), krever vi i stor grad at strengene skal konverteres til bytes. La oss diskutere visse måter dette kan utføres på.
Metode #1: Bruke bytes(str, enc) String kan konverteres til byte ved å bruke den generiske byte-funksjonen. Denne funksjonen peker internt til CPython Library som implisitt kaller kodefunksjonen for å konvertere strengen til spesifisert koding.
Python3
# 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)))> |
>
>Utgang:
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Metode #2: Bruke encode(enc) Den mest anbefalte metoden for å utføre denne spesielle oppgaven, ved å bruke kodefunksjonen for å få konverteringen utført, siden den reduserer én ekstra kobling til et bestemt bibliotek, kaller denne funksjonen den direkte.
Python3
# 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)))> |
>
>Utgang:
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Metode #2: Bruk av memoryview()
I dette eksemplet kaller vi encode()-metoden på my_string-variabelen for å konvertere den til byte ved å bruke UTF-8-kodingen. Deretter sender vi det resulterende byteobjektet til memoryview()-funksjonen, som returnerer et minnevisningsobjekt som gir en visning av de underliggende bytene.
Til slutt kaller vi tobytes()-metoden på minnevisningsobjektet for å lage et nytt byteobjekt som inneholder de samme dataene. Dette bytes-objektet lagres i my_bytes-variabelen og skrives ut til konsollen.
MERK: funksjonen memoryview() er nyttig for situasjoner der du trenger å få tilgang til de underliggende bytene til et objekt uten å kopiere dem. Imidlertid er det kanskje ikke den mest effektive tilnærmingen for enkel streng-til-byte-konvertering, da det innebærer ekstra overhead.
Python3
forskjellen mellom array og arraylist
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)> |
>
>Produksjon
b'Hello, world!'>
tidskompleksitet: O(n),
plasskompleksitet: O(n)
Metode #3: Bruk av binascii.unhexlify() metode:
Algoritme:
1.Importer binascii-modulen
2. Initialiser en streng som inneholder den heksadesimale representasjonen av bytes
3.Bruk unhexlify()-metoden til binascii-modulen for å konvertere den heksadesimale strengen til byte
4.Skriv ut de konverterte bytene og deres type.
Python3
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> |
>
>Produksjon
The original string : 4766472069732062657374 The byte converted string is : b'GfG is best', type :>
Tidskompleksitet:
Binascii.unhexlify()-metoden har en tidskompleksitet på O(n), der n er lengden på inndatastrengen.
Alle andre operasjoner i denne koden har en tidskompleksitet på O(1).
Derfor er den totale tidskompleksiteten til denne koden O(n).
Plass kompleksitet:
Plasskompleksiteten til denne koden er O(1), siden den bare bruker en konstant mengde ekstra plass, uavhengig av inngangsstørrelsen.
Metode 5: ved å bruke struct.pack()-metoden.
Trinn-for-trinn tilnærming
Importer struct-modulen i koden din.
Initialiser en streng kalt 'test_string' med verdien GFG er best.
Skriv ut den originale strengen ved å bruke print-setningen.
Bruk bytes()-metoden for å konvertere strengen til bytes. Send 'test_string' og 'utf-8'-kodingen som parametere til metoden.
Bruk struct.pack()-metoden for å konvertere bytene til binære data. Send formatstrengen '10s' og bytene som parametere til metoden. '10s'-formatstrengen indikerer at inndataene skal behandles som en streng med lengde 10.
Lagre resultatet i en variabel 'res'.
Skriv ut den konverterte bytestrengen sammen med dens type ved å bruke print-setningen.
Python3
q2 måneder
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)))> |
>
>Produksjon
The original string : GFG is best The byte converted string is : b'GFG is bes', type :>
Tidskompleksitet: Tidskompleksiteten til metodene bytes() og struct.pack() er O(n) der n er lengden på inndatastrengen.
Auxiliary Space: Mellomromskompleksiteten til metodene bytes() og struct.pack() er O(n) der n er lengden på inndatastrengen.