Sự khác biệt giữa # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0 Show Đây là một ví dụ tối thiểu thể hiện độc đáo sự khác biệt của hai chức năng >>> a = bytes(3) >>> b = bytearray(3) >>> a b'\x00\x00\x00' >>> b bytearray(b'\x00\x00\x00') >>> a[0] = 1 Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> a[0] = 1 TypeError: 'bytes' object does not support item assignment >>> b[0] = 1 >>> b bytearray(b'\x01\x00\x00') Bạn tạo hai biến # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''1 và # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''2. Cái trước là # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0 và cái sau là bytearray —cả hai đều mã hóa cùng một dữ liệuTuy nhiên, nếu bạn cố sửa đổi đối tượng # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0, Python sẽ tạo ra một # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''6 Thay vào đó, bạn giải quyết lỗi bằng cách sử dụng một đối tượng # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''8, thì lỗi sẽ biến mất Lý do là không giống như # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0, loại bytearray có thể thay đổi🌍 Hướng dẫn đề xuất. Python Mutable vs Immutable Objects Hãy tóm tắt lại cả hai chức năng một cách nhanh chóng. Sau đó, chúng tôi sẽ so sánh hiệu suất trong trường hợp bạn thắc mắc cái nào nhanh hơn byte Python()byte Python(). Hướng dẫn hoàn chỉnh Xem video này trên YouTube Hàm # Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') '''1 tích hợp sẵn của Python tạo một đối tượng # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0 bất biến được khởi tạo như được định nghĩa trong đối số hàm # Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') '''3 Một đối tượng bytes giống như một chuỗi nhưng nó chỉ sử dụng các ký tự byte bao gồm một chuỗi các số nguyên 8 bit trong phạm vi # Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') '''4 Đối tượng byte được trả về là bất biến—bạn không thể thay đổi nó sau khi tạo. Nếu bạn định thay đổi nội dung, hãy sử dụng phương thức # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' ''' 🌍 Hướng dẫn đề xuất. Python mảng phụ Python()mảng phụ Python(). Làm cách nào để chuyển đổi danh sách số nguyên thành mảng byte? Xem video này trên YouTube Hàm # Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') '''9 đến import time n = 100000000 start = time.time() b = bytes(b'x' * n) stop = time.time() print('bytes()', stop - start) start = time.time() b = bytearray(b'x' * n) stop = time.time() print('bytearray()', stop - start)0 và trả về một mảng byte mới dưới dạng lớp import time n = 100000000 start = time.time() b = bytes(b'x' * n) stop = time.time() print('bytes()', stop - start) start = time.time() b = bytearray(b'x' * n) stop = time.time() print('bytearray()', stop - start)1 # Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') ''' 🌍 Hướng dẫn đề xuất. Python Hiệu suất byte() so với bytearray()Tạo một đối tượng # Single Integer Input Argument print(bytes()) print(bytes(2)) print(bytes(4)) ''' b'' b'\x00\x00' b'\x00\x00\x00\x00' '''0 lớn (e. g. , 100 triệu byte) bằng cách sử dụng bytes() nhanh hơn so với việc tạo một bytearray với bytearray() bởi vì khả năng thay đổi của cái sau đi kèm với chi phí hiệu suấtTrong thử nghiệm của chúng tôi khi tạo các đối tượng 100 triệu byte, chúng tôi đã thấy hiệu suất tăng gấp 3 lần khi sử dụng Đây là mã của thiết lập thử nghiệm đơn giản import time n = 100000000 start = time.time() b = bytes(b'x' * n) stop = time.time() print('bytes()', stop - start) start = time.time() b = bytearray(b'x' * n) stop = time.time() print('bytearray()', stop - start) Tôi đã chạy thử nghiệm nhiều lần trên Win CPU Intel Core i7 với 8GB RAM và thu được kết quả sau = RESTART: bytes() 0.02437591552734375 bytearray() 0.07250618934631348 >>> = RESTART: bytes() 0.015362262725830078 bytearray() 0.0646059513092041 >>> = RESTART: bytes() 0.017394542694091797 bytearray() 0.05153799057006836 >>> = RESTART: bytes() 0.013019084930419922 bytearray() 0.0436251163482666 >>> = RESTART: bytes() 0.011996746063232422 bytearray() 0.042777299880981445 Vì vậy, sự khác biệt là khoảng 3-4 lần về hiệu suất. Tuy nhiên, đừng để lợi thế hiệu suất nhỏ bé này đánh lừa bạn Tốt hơn là bỏ qua thực tế này và tối ưu hóa để dễ đọc và phù hợp với vấn đề hiện tại
Trong mọi trường hợp, đừng thực hiện tối ưu hóa sớm 👉 Hướng dẫn đề xuất. Tối ưu hóa sớm là gốc rễ của mọi tội lỗi Đi đâu từ đây?Cảm ơn bạn đã đọc toàn bộ hướng dẫn—Tôi hy vọng bạn có được một số kiến thức quý giá từ nó Nếu bạn muốn tiếp tục cải thiện kỹ năng mã hóa của mình và trở thành một chuyên gia Python, hãy xem học viện email miễn phí của chúng tôi. Chúng tôi cũng có cheat sheet Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây Python bytearray là gì?Hàm bytearray() của Python
. Nó có thể chuyển đổi các đối tượng thành các đối tượng bytearray hoặc tạo đối tượng bytearray trống có kích thước được chỉ định. returns a bytearray object. It can convert objects into bytearray objects, or create empty bytearray object of the specified size.
Một byte trong Python là gì?Byte trong Python là gì? . Một byte là một thuật ngữ kiến trúc máy tính để lưu trữ bộ nhớ mã hóa một ký tự văn bản trong máy tính. a digital information unit that typically consists of 8 bits each of which consists of either a 0 or 1. A byte is a computer architecture term for memory storage that encodes a single character of text in a computer.
Sự khác biệt giữa chuỗi byte và chuỗi byte trong Python là gì?Vậy, sự khác biệt giữa byte và bytearray trong Python là gì? . byte strings are immutable and byte arrays are mutable.
Sự khác biệt giữa mảng và bytearray là gì?mô-đun mảng chính bạn. Nó thường được sử dụng để tạo dữ liệu nhị phân cho định dạng hoặc giao thức tệp nhị phân, như mô-đun cấu trúc. bytearray thường được sử dụng để xử lý văn bản được mã hóa (e. g. utf-8, ascii, v.v.), trái ngược với str() của Python 3 hoặc unicode() của Python 2 được sử dụng cho văn bản Unicode . |