Ví dụ này đại diện cho loại bytearray của Python;
Nhập macro kiểm tra
int PyByteArray_Check[ *o]Return true if the object o is a bytearray object or an instance of a subtype of the bytearray type. This function always succeeds.
int PyByteArray_CheckExact[ *o]Return true if the object o is a bytearray object, but not an instance of a subtype of the bytearray type. This function always succeeds.
Hàm API trực tiếp
*PyByteArray_FromObject[ *o]Return value: New reference. Part of the .
Trả về một đối tượng bytearray mới từ bất kỳ đối tượng nào, o, thực hiện
*PyByteArray_FromStringAndSize[const char *string, len]Return value: New reference. Part of the .
Tạo một đối tượng bytearray mới từ chuỗi và chiều dài của nó, len. Khi thất bại,
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755040 được trả lại *PyByteArray_Concat[ *a, *b]
Return value: New reference. Part of the .
Concat mảng phụ a và b và trả về một mảng phụ mới với kết quả
PyByteArray_Size[ *bytearray]Part of the .
Trả về kích thước của mảng phụ sau khi kiểm tra con trỏ
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755040char *PyByteArray_AsString[ *bytearray]
Part of the .
Trả về nội dung của bytearray dưới dạng mảng char sau khi kiểm tra con trỏ
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755040. Mảng được trả về luôn có thêm một byte rỗng được thêm vào
Hàm bytearray[] của Python chuyển đổi các chuỗi hoặc tập hợp các số nguyên thành một chuỗi byte có thể thay đổi. Nó cung cấp cho các nhà phát triển các phương thức thông thường mà Python cung cấp cho cả kiểu dữ liệu có thể thay đổi và byte. Tích hợp bytearray[] của Python cho phép thao tác dữ liệu hiệu quả cao trong một số tình huống phổ biến
Mục lục
Các tính năng mạnh mẽ của hàm Python
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 đi kèm với một số trách nhiệm. Các nhà phát triển phải chú ý đến mã hóa, nhận thức được định dạng dữ liệu nguồn và có kiến thức làm việc cơ bản về các bộ ký tự phổ biến như ASCII
Trong bài viết này, bạn sẽ tìm hiểu lý do căn bản, các trường hợp sử dụng phổ biến, các trường hợp sử dụng nâng cao và những cạm bẫy tiềm ẩn của hàm dựng sẵn
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 của Python. Thậm chí còn có một phần với một số điều kỳ quặc đáng chú ý ở phía dưới
TL; DR — Hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 của Python chuyển đổi chuỗi và chuỗi số nguyên thành byte để cung cấp cho nhà phát triển khả năng cập nhật [biến đổi] dữ liệu một cách hiệu quả mà không cần cấp phát bộ nhớ bổ sung
# Define a string x = "Stay gold Ponyboy." # Try to mutate it x[5:9] = 'silver' # Throws the following error >>> TypeError: 'str' object does not support item assignment # Define a byte array y = bytearray[x, encoding='ascii'] # Try to mutate it y[5:] = bytearray['silver Ponyboy.', encoding='ascii'] # Print the resulting type, decoded # to an ascii-string print[y.decode[encoding='ascii']] # Results in mutated string >>> Stay silver Ponyboy.
cơ sở lý luận
Đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 đã được giới thiệu trong Python 2 và đã đóng vai trò là ‘‘ cho đối tượng byte kể từ đó. Không giống như đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043, đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 không đi kèm với biểu diễn ký hiệu theo nghĩa đen và phải được khởi tạo trực tiếp
Ví dụ:
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755045 cung cấp biểu diễn bằng chữ cho đối tượng byte trong khi nhà phát triển phải sử dụng cú pháp
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755046 để tạo đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 mới. Tôi coi đây chỉ là một sự bất tiện nhỏ do những lợi ích mà kiểu dữ liệu
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 của Python mang lại cho các nhà phát triển
Dữ liệu như chuỗi được coi là bất biến [thêm về điều đó bên dưới] có nghĩa là chúng không thể thay đổi trực tiếp. Để thay đổi [biến đổi] một chuỗi, người phát triển phải sao chép chuỗi đó và gán phiên bản mới cho một đối tượng nằm trong bộ nhớ. Xem xét ví dụ sau
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 3236720675504
Lưu ý rằng chuỗi của chúng tôi đã được thay đổi nhưng bây giờ có một id khác [vị trí bộ nhớ. ] Điều đó có nghĩa là bây giờ a là một đối tượng khác trong bộ nhớ và đối tượng ban đầu của chúng ta là rác. Đó là tất cả tốt và tốt khi một người đang thay đổi xung quanh một vài chuỗi
Thao tác chuỗi dễ dàng như vậy là một trong những tính năng ngôn ngữ khiến Python trở thành ngôn ngữ lập trình phổ biến như vậy. Thật không may, phương pháp này không hiệu quả để thay đổi số lượng lớn dữ liệu đó. Đó là nơi sức mạnh của hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755049 tỏa sáng
Mô tả mục đích sử dụng của byearry[] như sau
Lớp bytearray là một chuỗi các số nguyên có thể thay đổi trong phạm vi 0 >> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 hiển thị các chuỗi ký tự thoát. Bây giờ, hãy xem xét một số trường hợp phổ biến và cú pháp cơ bản
Sử dụng cơ bản và cú pháp
Hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 trả về một mảng byte mới. Điều này có thể xuất phát từ một chuỗi đầu vào hoặc một tập hợp các số nguyên trong phạm vi 0-255 [bao gồm]. Nếu bạn đã quen thuộc với ký hiệu nhị phân, bạn có thể đã đoán được rằng nó tạo ra chỗ ở hoàn hảo cho các biểu diễn tám bit
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 tích hợp sẵn của Python có ba đối số có thể
- nguồn – dữ liệu được chuyển đổi thành một mảng byte, một chuỗi hoặc một tập hợp các số nguyên
- mã hóa - bắt buộc đối với chuỗi, tùy chọn đối với bộ sưu tập số nguyên
- lỗi - một tham số tùy chọn để chỉ định xử lý lỗi.
Hãy xem nhanh hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 để chứng minh cách sử dụng cơ bản của các đối số này
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755040
Chà, điều đó đã không diễn ra tốt đẹp. Byte cần thiết chỉ là biểu diễn số của thông tin. Không biết cách diễn giải thông tin đó, Python sẽ làm ầm lên. Có thể cho rằng, một mã hóa mặc định có thể được sử dụng nhưng điều đó sẽ gây ra một loạt vấn đề khác. Hãy xem điều gì sẽ xảy ra khi chúng ta để Python biết cách diễn giải dữ liệu
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755041
Bây giờ chúng ta có một đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 trong bộ nhớ biểu thị càng nhiều bằng cách hiển thị một byte bằng chữ trong ngoặc đơn [thêm về điều đó bên dưới. ] Chúng ta hãy xem cách hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 xử lý một chuỗi các giá trị số nguyên. Hãy nhớ rằng, chỉ các giá trị trong phạm vi
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550406 mới được coi là hợp lệ tại đây
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755044
Chà, điều đó cũng không suôn sẻ. Khi được cung cấp một dãy số, Python không cần biết mã hóa vì nó giới hạn các giá trị từ 0-255. Biểu diễn ký tự của bất kỳ giá trị nào trong phạm vi này được giả định là theo tiêu chuẩn ISO8859-1, thường được gọi là bộ ký tự Latinh-1 [bộ ký tự thay thế của bảng mã ASCII. ] Hãy thử điều này một lần nữa
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755045
Bây giờ chúng ta có một đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 từ danh sách các giá trị số nguyên. Nhưng chúng ta có thể làm gì với điều này? . Chúng tôi sẽ đề cập đến những gì có thể thay đổi so với. phương tiện bất biến chỉ trong một giây. Tuy nhiên, trước khi đến đó, chúng ta hãy dừng lại một chút và xem xét sự khác biệt giữa chuỗi byte và mảng byte có thể là gì
Chuỗi byte so với. Mảng byte
Tại thời điểm này, bạn có thể tự hỏi sự khác biệt giữa chuỗi byte và tập hợp byte có thể là gì. Trong một từ-độ biến đổi. Cả hai đều biểu thị dữ liệu ở định dạng nhị phân, cả hai đều có thể dễ dàng xử lý các đầu vào thập lục phân hai chữ số và cả hai đều dựa vào các nhà phát triển để lưu tâm đến mã hóa để đảm bảo biểu thị chính xác các giá trị số và bản dịch kết quả. Vì vậy, những gì cho?
Các byte được xử lý có tính hữu hạn hơn các đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042. Nghĩa là, chúng phù hợp với các ứng dụng mà người ta không cần thay đổi dữ liệu thường xuyên. Ví dụ: một đối tượng byte sẽ phù hợp hơn để lưu trữ dữ liệu nhận được từ đường truyền mạng. Đối với các lần truyền lớn, thậm chí có thể dưới dạng một mảng byte [chứ không phải đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042. ]
Đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 phù hợp hơn với các tình huống cần thao tác dữ liệu thường xuyên. Ví dụ: cập nhật dữ liệu nhận được từ truyền mạng trước khi truyền lại. Các đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042 cũng cung cấp các phương thức dành cho các đối tượng có thể thay đổi như định cỡ, cắt, gán thành viên, chèn, đảo ngược, v.v.
Để đánh giá đầy đủ sự khác biệt giữa byte Python và đối tượng ________ 113, chúng ta cần xem xét sự khác biệt giữa có thể thay đổi và. kiểu dữ liệu bất biến. Đừng lo lắng, đó là một khái niệm khá đơn giản và với một ví dụ cơ bản rất dễ nắm bắt
Có thể thay đổi so với. bất biến
Trong Python, chuỗi, số và bộ dữ liệu là bất biến—có nghĩa là không thể thay đổi giá trị của chúng. Chúng có thể được sao chép hoặc gán lại nhưng không được thao tác trực tiếp. Các cấu trúc dữ liệu như danh sách, từ điển và tập hợp có thể thay đổi được và cho phép thao tác các phần cấu thành của chúng hiệu quả hơn nhiều
Cụ thể, cấp phát bộ nhớ bổ sung được giảm thiểu khi cập nhật một phần dữ liệu nằm ở giữa danh sách trong khi cập nhật phần giữa của chuỗi sẽ yêu cầu bộ nhớ gần gấp đôi. Điều này mô tả cách các mảng byte có thể được áp dụng trong việc biểu diễn các kiểu dữ liệu không thay đổi để cải thiện hiệu quả trong các ngữ cảnh nhất định
Hãy xem lại ví dụ TL; DR ban đầu của chúng tôi từ phía trên, lần này có thêm một chút giải thích
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755042
Ở đây, chúng tôi đã chỉ ra rằng việc cố gắng thay đổi trực tiếp văn bản của chuỗi của chúng tôi sẽ gây ra lỗi
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550414. Lưu trữ chuỗi đó dưới dạng một mảng byte cho phép thao tác trực tiếp các giá trị ký tự riêng lẻ. Sau khi thao tác, chúng ta có thể chuyển đổi các giá trị kết quả thành một chuỗi thông qua phương thức
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550415—đảm bảo chỉ định mã hóa phù hợp
Đây có phải là một ví dụ về việc sử dụng hiệu quả hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 không? . Hãy tưởng tượng bạn phải cập nhật các chuỗi dữ liệu văn bản lớn, chẳng hạn như trong nhiều ứng dụng cơ sở dữ liệu hoặc mức tiêu thụ dữ liệu mạng lớn. Khả năng thao tác dữ liệu mà không cần cấp phát bộ nhớ bổ sung sẽ rất cần thiết. Đó là nơi mảng byte thực sự tỏa sáng
TL; DR – biểu diễn một chuỗi dưới dạng một mảng byte cho phép một người thao tác với nó hiệu quả hơn. Có một chi phí chung ban đầu trong bộ nhớ nhưng chi phí giảm dần khi các hoạt động thao tác tích lũy. Luôn nhớ mã hóa của bạn
ghi chú
Hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 xử lý một số tiện ích khá sắc thái. Điều này không gây ngạc nhiên về hành vi đôi khi ma quái được thể hiện bởi tính năng tích hợp sẵn này. Dưới đây là một số trường hợp hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 có thể hoạt động theo những cách có thể cần được giải thích. Đây chắc chắn không phải là lỗi nhưng dù sao cũng nên ghi nhớ
Chuỗi ký tự thoát
Đưa ra giới hạn
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 của các đối số số nguyên hợp lệ trong phạm vi
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550440, người ta có thể mong đợi một số hành vi nhanh chóng phát sinh. Một
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550441 bị loại bỏ bất cứ khi nào một giá trị không tuân thủ được thử—nhưng điều đó được mong đợi. Điều kỳ lạ là cách Python sẽ biểu thị các giá trị thứ tự cho các ký tự không in được. Hãy xem xét những điều sau đây
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755047
Lưu ý rằng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755049 sẽ hiển thị các ký tự thoát bất kể mảng số nguyên được truyền vào như thế nào [tiền tố
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550443. ] Tuy nhiên, lưu ý rằng các ký tự có giá trị số nguyên khớp với giá trị thứ tự của các ký tự có thể in được biểu thị dưới dạng ký tự đó. Nói cách khác. 1 được hiển thị dưới dạng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550444 nhưng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550445 được hiển thị dưới dạng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550446 vì đó là giá trị thứ tự của ký tự in được. Hãy xem bài viết về hàm ord[] của Python để cảm nhận về khả năng tương tác đó
Giá trị mặc định
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 có thể được khởi tạo dưới dạng một mảng trống hoặc một mảng có giá trị mặc định bằng cách chuyển một đối số số nguyên không thể lặp lại. Hãy xem xét những điều sau đây
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043
Lưu ý ở đây rằng việc chuyển giá trị số nguyên của
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550448 làm đối số sẽ khởi tạo đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 với năm giá trị của
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550450—được biểu thị bằng chuỗi ký tự thoát
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550451. Theo ý kiến của tôi, tài liệu bao gồm các đối số
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 hợp lệ không hoàn toàn rõ ràng về điểm này và có thể dẫn đến một số nhầm lẫn. Lưu ý ví dụ cuối cùng đặt 5 trong ký hiệu danh sách ngoặc của Python. Điều này dẫn đến một đối tượng
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 có độ dài một với chuỗi ký tự thoát duy nhất là
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550454. Một lần nữa, không phải là một lỗi nhưng chắc chắn kỳ quặc. Ghi chú.
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550450 không giống như
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 323672067550456
Suy nghĩ cuối cùng
Hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 của Python cung cấp một tiện ích dễ sử dụng để thao tác dữ liệu hiệu quả trên bộ nhớ. Các nhà phát triển ứng dụng mạng, các trường hợp sử dụng xử lý chuỗi lớn và các chương trình mã hóa và giải mã các dải dữ liệu lớn đều có thể ngưỡng mộ khả năng truy cập cấp cao của dữ liệu đòn bẩy thấp
Python chắc chắn không phải là ngôn ngữ chuẩn để phát triển các ứng dụng hiệu quả về bộ nhớ—ít nhất là không trực tiếp. Hàm
# Create a string a = "string one" print[a, "-", id[a]] >>> string one - 3236722728688 # 'mutate' string a = "string two" print[a, "-", id[a]] >>> string two - 32367206755043 cung cấp tiện ích tạo ra trường hợp, mặc dù không phải là lựa chọn chính tắc, nhưng Python chắc chắn sẽ hoàn thành nhiệm vụ nếu cần. Để biết thêm thông tin chi tiết về việc xử lý dữ liệu nhị phân, hãy xem bài viết Dù sao thì luồng byte là gì?