【发布时间】:2014-10-06 18:43:25
【问题描述】:
我有一个名为 headers 的列表列表。每个子列表中包含的数据都是二进制的。
标题[5] = ['t\x04\x1e\x01I\x1a\t\x11\x02Rz\x7fI\x00H:\x00\x1a\x13I\x1aOEH\x0f\x1d\rS\x04']
当我有一个如 l = ["hello",1,22,"ex"] 的列表时,我可以使用 l[0][2] 来访问元素 'l'。
同样,当我想访问包含在列表标题[5] 中的二进制数据的第 n 个字节时,我得到一个列表索引超出范围错误。如何访问此列表标题[5] 中的第 n 个字节?
我的目标是通过将文件拆分为“keysize”长度字节,从文件对象“text”中的给定二进制数据创建列表列表。
之后,我想将所有列表的第一个字节放入列表'nheads'中的新列表中,将所有'heads'列表的第二个字节放入nheads中,依此类推。
我的部分代码是:
parti = len(text)/keysize
headers = [[] for k in range(0, parti)]
nheads = [[] for k in range(0, parti)]
pcount = 0
for i in xrange(0,parti):
if (pcount < len(text)):
headers[i].append(text[i*keysize:(i+1)*keysize])
pcount += 1
else :
pcount += 1
print headers[5][2]
count = 0
for i in xrange(0,parti):
for j in xrange(0,parti):
if(count < len(text)):
nheads[i].append(headers[j][i])
count = count + 1
else:
count = count + 1
我得到的错误是:
utkarsh@utkarsh-Lenovo-G580:~/crypto$ python 6.py
['t\x04\x1e\x01I\x1a\t\x11\x02Rz\x7fI\x00H:\x00\x1a\x13I\x1aOEH\x0f\x1d\rS\x04']
Traceback (most recent call last):
File "6.py", line 65, in <module>
nheads[i].append(headers[j][i])
IndexError: list index out of range
utkarsh@utkarsh-Lenovo-G580:~/crypto$ python 6.py
Traceback (most recent call last):
File "6.py", line 60, in <module>
print headers[5][2]
IndexError: list index out of range
【问题讨论】:
-
请发布您正在运行的代码示例、运行该代码获得的实际回溯以及预期输出。
-
如果
heads[5]正在返回单个项目列表,您是否正在尝试heads[5][char_index]而您想要的是heads[5][0][char_index]? -
我也试过了,错误字符串索引超出范围。
标签: python list indexing binary