Python – 元組與位元組整數的相互轉換
元組是有序的、有限的用於收集資料的序列。它可以用圓括號 () 表示。位元組整數是一個簡單的數字,沒有小數或分數值。在 Python 中,有一些內建函式,例如 from_bytes()、bytes()、unpack() 和 enumerate() 可用於元組與位元組整數的相互轉換。
語法
以下語法在示例中使用
from_bytes()
from_bytes() 是 Python 中的一個內建函式,它接受兩個特定引數
bytes() - bytes() 也是一個內建函式,它定義了不可變的整數序列。
byteorder - byteorder 確定整數表示,其值設定為 big。
bytes()
bytes() 是 Python 中的一個內建函式,它返回位元組物件。位元組物件是不可變的整數序列,範圍在 0-256 之間。
unpack()
unpack() 是 Python 的一個內建函式,它允許我們提供可迭代物件(如列表、集合等)的所有資料型別。
enumerate()
enumerate() 是 Python 中的一個內建函式,它跟蹤每個給定索引元素的特定迭代。
使用 from_bytes()
在下面的示例中,我們將首先將元組儲存在變數 tup_val 中。然後使用內建函式 from_bytes,它接受兩個引數 - bytes() 和 byteorder 來解決將元組轉換為位元組整數的問題,並將其儲存在變數 byte_int 中。最後,我們使用變數 byte_int 列印結果。
示例
tup_val = (45, 5, 55, 19, 20)
byte_int = int.from_bytes(bytes(tup_val), byteorder='big')
print("Conversion of tuple into byte integer:\n", byte_int)
輸出
Conversion of tuple into byte integer: 193361023764
使用 Struct 模組
在下面的示例中,程式使用 struct 模組來更改元組到位元組整數的轉換。然後在變數 tuple_val 中建立元組。接下來,使用帶有 struct 模組的內建函式 unpack(),它接受引數:
!i - 該值應表示為單個帶符號位元組或最低有效位元組。
struct.pack('!BBBB', *tuple_val) - struct 是模組的名稱,它與內建函式 pack() 相關聯,該函式打包了 4 個無符號位元組。無符號位元組的值範圍在 0-255 之間。
最後,我們使用變數 byte_int 列印結果。
示例
import struct
tuple_val = (10, 20, 30, 40)
byte_int = struct.unpack('!i', struct.pack('!BBBB', *tuple_val))[0]
print("Conversion of tuple into byte integer:\n", byte_int)
輸出
Conversion of tuple into byte integer: 169090600
使用 enumerate() 函式
在下面的示例中,程式首先將元組元素儲存在變數 tuple_val 中。接下來,使用內建函式 sum() 和 enumerate() 計算元組位元組的轉換並生成結果。
示例
tuple_val = (45, 5, 55, 19, 20)
byte_int = sum((x << (8 * i)) for i, x in enumerate(tuple_val[::-1]))
print("Conversion of tuple into byte integer:\n", byte_int)
輸出
Conversion of tuple into byte integer: 193361023764
結論
我們討論了三種將元組元素轉換為位元組整數的不同方法。使用了各種內建方法,例如 enumerate()、unpack() 等,這些方法有助於設定特定的條件和操作。此程式的一些應用包括作業系統、數字程式碼等。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP