索引超出范围错误,这是不应该发生的

时间:2015-05-13 01:25:58

标签: python list

我想获取这4个十进制数并将它们转换为二进制并将它们存储到列表中。我得到索引超出范围错误.. 什么似乎是问题?我试着将它们放在列表中,而不是使用for循环。但是没有用?

value = [128, 12, 1, 1]
binary = []
i = 0
for x in value:
    binary[i] = bin(x)
    i += 1

2 个答案:

答案 0 :(得分:2)

您无法通过分配超出列表末尾的索引来增加列表的大小。请改用value = [128, 12, 1, 1] binary = [] for x in value: binary.append(x) 方法。

x

(如果可能的话,更好的是使用列表理解,尽管这取决于您在追加到binary之前对binary = list(value)的值实际执行的操作。您显示的代码确实简化为{ {1}}。)

答案 1 :(得分:1)

我认为这就是你要找的东西:

value = [128, 12, 1, 1]
binary = [bin(x) for x in value]