Interkonverteringer er som sædvanligt ret populære, men konvertering mellem en streng til bytes er mere almindelig i disse dage på grund af det faktum, at til håndtering af filer eller Machine Learning ( Pickle File ), kræver vi i høj grad, at strengene skal konverteres til bytes. Lad os diskutere visse måder, hvorpå dette kan udføres.
Metode #1: Brug af bytes(str, enc) Streng kan konverteres til bytes ved hjælp af den generiske bytes funktion. Denne funktion peger internt på CPython Library, som implicit kalder indkodningsfunktionen til at konvertere strengen til specificeret kodning.
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)))> |
>
>Output:
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Metode #2: Brug af encode(enc) Den mest anbefalede metode til at udføre denne særlige opgave, ved at bruge encode-funktionen til at få konverteringen udført, da det reducerer en ekstra linkning til et bestemt bibliotek, kalder denne funktion det 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)))> |
>
>Output:
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Metode #2: Brug af memoryview()
I dette eksempel kalder vi encode()-metoden på my_string-variablen for at konvertere den til bytes ved hjælp af UTF-8-kodningen. Derefter sender vi det resulterende bytes-objekt til memoryview()-funktionen, som returnerer et memory view-objekt, der giver en visning af de underliggende bytes.
Endelig kalder vi tobytes()-metoden på hukommelsesvisningsobjektet for at oprette et nyt bytes-objekt, der indeholder de samme data. Dette bytes-objekt gemmes i variablen my_bytes og udskrives til konsollen.
BEMÆRK: memoryview()-funktionen er nyttig til situationer, hvor du har brug for at få adgang til de underliggende bytes af et objekt uden at kopiere dem. Det er dog muligvis ikke den mest effektive tilgang til simpel streng-til-byte-konvertering, da det indebærer yderligere overhead.
Python3
forskel mellem 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)> |
>
>Produktion
b'Hello, world!'>
tidskompleksitet: O(n),
rumkompleksitet: O(n)
Metode #3: Brug af binascii.unhexlify() metode:
Algoritme:
1. Importer binascii-modulet
2.Initialiser en streng, der indeholder den hexadecimale repræsentation af bytes
3. Brug unhexlify()-metoden i binascii-modulet til at konvertere den hexadecimale streng til bytes
4.Udskriv de konverterede bytes 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> |
>
>Produktion
The original string : 4766472069732062657374 The byte converted string is : b'GfG is best', type :>
Tidskompleksitet:
Binascii.unhexlify()-metoden har en tidskompleksitet på O(n), hvor n er længden af inputstrengen.
Alle andre operationer i denne kode har en tidskompleksitet på O(1).
Derfor er den samlede tidskompleksitet af denne kode O(n).
Rumkompleksitet:
Rumkompleksiteten af denne kode er O(1), da den kun bruger en konstant mængde ekstra plads, uanset inputstørrelsen.
Metode 5: ved at bruge struct.pack() metoden.
Trin-for-trin tilgang
Importer struct-modulet i din kode.
Initialiser en streng ved navn 'test_string' med værdien GFG er bedst.
Udskriv den originale streng ved hjælp af print-erklæringen.
Brug metoden bytes() til at konvertere strengen til bytes. Send 'test_string' og 'utf-8'-kodningen som parametre til metoden.
Brug metoden struct.pack() til at konvertere bytes til binære data. Send formatstrengen '10s' og bytes som parametre til metoden. '10'er'-formatstrengen angiver, at inputdata skal behandles som en streng med længde 10.
Gem resultatet i en variabel 'res'.
Udskriv den konverterede bytestreng sammen med dens type ved hjælp af print-sætningen.
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)))> |
>
>Produktion
The original string : GFG is best The byte converted string is : b'GFG is bes', type :>
Tidskompleksitet: Tidskompleksiteten af bytes()- og struct.pack()-metoderne er O(n), hvor n er længden af inputstrengen.
Auxiliary Space: Rumkompleksiteten af bytes() og struct.pack() metoderne er O(n), hvor n er længden af inputstrengen.