Dada una string de bytes. La tarea es escribir un programa en Python para convertir este byte de string en una lista de enteros.
Método 1: mediante el uso de la función list()
La función list() se usa para crear una lista a partir del iterable especificado tomado como su parámetro.
Sintaxis:
lista([iterable])
Parámetros: Esta función acepta un solo parámetro que se ilustra a continuación:
- iterable: esta es la secuencia especificada que se creará como otra lista.
Valores devueltos: esta función devuelve una nueva lista creada a partir del iterable dado pasado como sus argumentos.
Ejemplo: programa de Python a una string de bytes a una lista de enteros
Python3
# Python program to illustrate the # conversion of a byte string # to a list of integers # Initializing a byte string as GFG x = b'GFG' # Calling the list() function to # create a new list of integers that # are the ascii values of the byte # string GFG print(list(x))
Producción:
[71, 70, 71]
Método 2: usando la función for loop y ord()
La función ord() se utiliza para devolver el número que representa el código Unicode de un carácter de byte especificado.
Sintaxis:
orden (personaje)
Parámetros: Esta función acepta un solo parámetro que se ilustra a continuación:
- carácter: Esta es la string de bytes especificada.
Valores devueltos: esta función devuelve el número que representa el código Unicode de un carácter de byte especificado.
Ejemplo: programa de Python a una string de bytes a una lista de enteros
Python3
# Python program to illustrate the # conversion of a byte string # to a list of integers # Initializing a byte string S = "GFG is a CS Portal" nums = [] # Calling the for loop to iterate each # characters of the given byte string for chr in S: # Calling the ord() function # to convert the specified byte # characters to numbers of the unicode nums.append(ord(chr)) # Printing the unicode of the byte string print(nums)
Producción:
[71, 70, 71, 32, 105, 115, 32, 97, 32, 67, 83, 32, 80, 111, 114, 116, 97, 108]
Método 3: Usando la función from_bytes()
La función from_bytes() se usa para convertir la string de bytes especificada en sus valores int correspondientes.
Sintaxis:
int.from_bytes(bytes, orden de bytes, *, firmado=Falso)
Parámetros: Esta función acepta algunos parámetros que se ilustran a continuación:
- bytes: un objeto de byte
- byteorder: este parámetro determina el orden de representación del valor entero. byteorder puede tener valores como «pequeño», donde el bit más significativo se almacena al final y el menos al principio, o grande, donde el MSB se almacena al inicio y el LSB al final. El orden de bytes grandes calcula el valor de un número entero en base 256.
- firmado: Su valor por defecto es Falso. Este parámetro indica si representar el complemento a 2 de un número.
Valores devueltos: Esta función devuelve un int equivalente al byte dado.
Ejemplo: programa de Python a una string de bytes a una lista de enteros
Python3
# Python program to illustrate the # conversion of a byte string # to a list of integers # Initializing byte value byte_val = b'\x00\x01' # Converting to int # byteorder is big where MSB is at start int_val = int.from_bytes(byte_val, "big") # Printing int equivalent print(int_val)
Producción:
1
Ejemplo 2: programa de Python a una string de bytes a una lista de enteros
Python3
# Python program to illustrate the # conversion of a byte string # to a list of integers # Initializing a byte string byte_val = b'\xfc\x00' # 2's complement is enabled in big # endian byte order format int_val = int.from_bytes(byte_val, "big", signed="True") # Printing int object print(int_val)
Producción:
-1024
La complejidad de tiempo y espacio de todos los métodos es la misma:
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Publicación traducida automáticamente
Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA