簡體   English   中英

如何將多個分隔位值列表組合成字符串?

[英]How can I combine multiple lists of separated bit values into strings?

我有一個包含 32 個單獨位的列表列表。 我想將這些值分成 4 個二進制數字字符串,每個字符串代表一個字節。

我的數據看起來像:

array = [[1, 0, 0, 0, 1, 0, 1, 0],
         [0, 1, 1, 0, 0, 0, 0, 0],
         [0, 0, 0, 0, 1, 0, 0, 0],
         [0, 0, 1, 1, 1, 0, 1, 1]]

結果應該滿足

array[0] == '10001010'
array[1] == '01100000'
array[2] == '00001000'
array[3] == '00111011'

我嘗試過的每個解決方案都會給我留下一個包含逗號的字符串,例如'1,0,0,0,1,0,1,0'

獲取每個字節分組並將它們轉換為字符串的最簡單方法是什么?

使用列表推導來迭代項目,並通過將每個項目轉換為字符串來連接每個項目:

>>> array = [[1, 0, 0, 0, 1, 0, 1, 0],
...          [0, 1, 1, 0, 0, 0, 0, 0],
...          [0, 0, 0, 0, 1, 0, 0, 0],
...          [0, 0, 1, 1, 1, 0, 1, 1]]
>>> array = [''.join(str(n) for n in item) for item in array]
>>> array
['10001010', '01100000', '00001000', '00111011']

嘗試這個:

arr1, arr2, arr3, arr4 = [''.join(map(str,elem)) for elem in arr]
print(arr1, arr2, arr3, arr4, sep='\n')

10001010
01100000
00001000
00111011

或沒有元組解包:

arr = ["".join(map(str, elem)) for elem in arr]
print(arr)
['10001010', '01100000', '00001000', '00111011']

然后您可以使用arr[0]等訪問它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM