【发布时间】:2013-05-26 11:16:17
【问题描述】:
我有一个字典,我将其转换为字节数组,并且由于字节数组是不可变的(无法修改),我尝试使列表等于字节数组中的每个索引。
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。
bytearray 如何以及为什么超出范围?
【问题讨论】:
-
乔兰·比斯利的回答解释了为什么你会得到这个例外。但是如果你修复了这个问题(例如,使用
for index, value in enumerate(b): c[index] = value),你只会在list上得到一个IndexError。如果你有一个空列表,你不能只设置c[0],因为没有c[0]可以设置。你需要使用append(或者想出一些其他的解决方案,比如预先分配列表c = [None for _ in b]——但如果你知道怎么做,你就会知道整个问题都是不必要的)。
标签: python dictionary python-3.x bytearray