Hướng dẫn python string to list of bytes - chuỗi python thành danh sách các byte

Có lẽ bạn muốn điều này (Python 2):

>>> map(ord,'hello')
[104, 101, 108, 108, 111]

Đối với một chuỗi unicode, điều này sẽ trả về các điểm mã Unicode:

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]

Nhưng mã hóa nó để nhận giá trị byte cho mã hóa:

>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]

Đưa ra một chuỗi byte. Nhiệm vụ là viết một chương trình Python để chuyển đổi byte chuỗi này thành danh sách các số nguyên. & NBSP;

Phương pháp 1: Bằng cách sử dụng hàm list ()By using list() function

Hàm Danh sách () được sử dụng để tạo một danh sách từ số khác được chỉ định được thực hiện dưới dạng tham số của nó. list() function is used to create a list from the specified iterable taken as its parameter.

Syntax:

list([iterable])

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa bên dưới:This function accepts a single parameter that is illustrated below:

  • Có thể lặp lại: Đây là chuỗi được chỉ định sẽ được tạo như một danh sách khác.This is the specified sequence that is going to be created as another list.

Giá trị trả về: Hàm này trả về một danh sách mới được tạo ra từ số đó đã được thông qua dưới dạng đối số của nó. This function returns a new list created out of the given iterable passed as its arguments.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Output:

[71, 70, 71]

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()By using for loop and ord() function

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.ord() function is used to return the number representing the Unicode code of a specified byte character.

Syntax:

ord(character)

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:This function accepts a single parameter which is illustrated below:

  • ký tự: Đây là chuỗi byte được chỉ định. This is the specified byte string.

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.This function returns the number representing the Unicode code of a specified byte character.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
7
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
8
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
9
>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
0
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
4
>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
2

ký tự: Đây là chuỗi byte được chỉ định.

Output:

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

S = "GFG is a CS Portal" By using from_bytes() function

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
0=
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
2from_bytes() function is used to convert the specified byte string into its corresponding int values.

Syntax:

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
3
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
4
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
5
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
6

>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
3
>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
4
This function accepts some parameters which are illustrated below:

  • [71, 70, 71, 32, 105, 115, 32, 97, 32, 67, 83, 32, 80, 111, 114, 116, 97, 108]A byte object
  • Phương pháp 3: Bằng cách sử dụng hàm from_bytes ()This parameter determines the order of representation of the integer value. byteorder can have values as either “little” where most significant bit is stored at the end and least at the beginning, or big, where MSB is stored at start and LSB at the end. Big byte order calculates the value of an integer in base 256.
  • Hàm from_Bytes () được sử dụng để chuyển đổi chuỗi byte được chỉ định thành các giá trị int tương ứng của nó. Its default value is False. This parameter Indicates whether to represent 2’s complement of a number.

int.from_bytes (byte, byteorder, *, đã ký = false) This function returns an int equivalent to the given byte.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
3
[71, 70, 71]
6

Output:

1

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:Python program to a byte string to a list of integers

Python3

ký tự: Đây là chuỗi byte được chỉ định.

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
3
[71, 70, 71]
6

Output:

-1024

S = "GFG is a CS Portal"

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
0=
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
2
O(n)

>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
3
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
4
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
5
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
6
O(n)


Đội câu trả lời giáo dục

Đối tượng byte là một chuỗi các byte. Các đối tượng byte này có thể đọc được máy và có thể được lưu trữ trực tiếp trên đĩa. Các chuỗi, mặt khác, ở dạng người có thể đọc được và cần được mã hóa để chúng có thể được lưu trữ trên một đĩa.byte object is a sequence of bytes. These byte objects are machine-readable and can be directly stored on the disk. Strings, on the other hand, are in human-readable form and need to be encoded so that they can be stored on a disk.

Có một số loại mã hóa khác nhau có thể ánh xạ văn bản vào đĩa. Những cái phổ biến nhất là các kỹ thuật mã hóa ASCII và UTF-8.

Chuyển đổi chuỗi thành byte

Chúng ta có thể sử dụng lớp

-1024
2 tích hợp trong Python để chuyển đổi chuỗi thành byte: chỉ cần chuyển chuỗi làm đầu vào đầu tiên của hàm tạo của lớp byte và sau đó chuyển mã hóa làm đối số thứ hai.

In đối tượng hiển thị một biểu diễn văn bản thân thiện với người dùng, nhưng dữ liệu có trong đó là trong byte.

string = "Hello World"

# string with encoding 'utf-8'

arr = bytes(string, 'utf-8')

arr2 = bytes(string, 'ascii')

print(arr,'\n')

# actual bytes in the the string

for byte in arr:

print(byte, end=' ')

print("\n")

for byte in arr2:

print(byte, end=' ')

THẺ LIÊN QUAN

Python

dây

Byte

đổi

Bản quyền © 2022 Giáo dục, Inc. Tất cả quyền được bảo lưu

Làm thế nào để bạn tạo một mảng byte từ một chuỗi trong Python?

String = "Python rất thú vị." # Chuỗi có mã hóa 'UTF-8' ARR = byteArray (Chuỗi, 'UTF-8') in (ARR) Chạy mã ..
Kích thước = 5. mảng = bytearray (kích thước) in (mảng) mã chạy ..
rlist = [1, 2, 3, 4, 5] mảng = bytearray (rlist) in (mảng) mã chạy ..

Làm thế nào để bạn chuyển đổi chuỗi thành byte?

Chúng ta có thể sử dụng phương thức chuỗi getBytes () để mã hóa chuỗi thành chuỗi byte bằng cách sử dụng ký tự mặc định của nền tảng.Phương pháp này bị quá tải và chúng ta cũng có thể vượt qua Charset làm đối số.use String class getBytes() method to encode the string into a sequence of bytes using the platform's default charset. This method is overloaded and we can also pass Charset as argument.

Có bao nhiêu byte là một python chuỗi?

Lưu ý rằng mỗi chuỗi trong Python có thêm 49-80 byte bộ nhớ, trong đó nó lưu trữ thông tin bổ sung, chẳng hạn như băm, độ dài, độ dài trong byte, loại mã hóa và cờ chuỗi.Đó là lý do tại sao một chuỗi trống mất 49 byte bộ nhớ.49-80 bytes of memory, where it stores supplementary information, such as hash, length, length in bytes, encoding type and string flags. That's why an empty string takes 49 bytes of memory.

Điều gì là bytestring trong Python?

Trong Python, một chuỗi byte chỉ là: một chuỗi các byte.Nó không thể đọc được con người.Dưới mui xe, mọi thứ phải được chuyển đổi thành chuỗi byte trước khi nó có thể được lưu trữ trong máy tính.Mặt khác, một chuỗi ký tự, thường chỉ được gọi là "chuỗi", là một chuỗi các ký tự.a sequence of bytes. It isn't human-readable. Under the hood, everything must be converted to a byte string before it can be stored in a computer. On the other hand, a character string, often just called a "string", is a sequence of characters.