Programa de Python para convertir una string de bytes en una lista de enteros

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *