我有一個字典,我將其轉換爲bytearray,並且由於bytearrays是不可變的(無法修改),我嘗試使列表等於字節數組中的每個索引。如何將bytearray的內容複製到列表(Python)?
a = {1:'a', 2:'b', 3:'c'}
b = bytearray(str(a), 'ASCII')
c = []
for i in b:
c[i] = b[i] # Error on this line
print(str(c))
問題是它一直在打印IndexError: bytearray index out of range
。
字節數組如何以及爲什麼超出範圍?
Joran比斯利的回答解釋了爲什麼你得到這個例外。但是,如果你解決了這個問題(例如,用'for index,枚舉值(b):c [index] = value'),你只會在'list'上得到一個'IndexError'。如果你有一個空列表,你不能只設置'c [0]',因爲沒有'c [0]'來設置。你需要使用'append'(或者提出一些其他解決方案,比如預先分配列表c = [None for _in b]),但如果你知道如何做到這一點,你就會知道這個問題是不必要的)。 – abarnert