Python 对于包含字符串的列表,列表索引超出范围错误
我有一个名为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中,以此类推 我的部分代码是:Python 对于包含字符串的列表,列表索引超出范围错误,python,list,indexing,binary,Python,List,Indexing,Binary,我有一个名为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个字节 我的目标是通过
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
parti=len(文本)/keysize
标头=[]表示范围内的k(0,parti)]
nheads=[]表示范围内的k(0,parti)]
pcount=0
对于X范围内的i(0,部分):
如果(pcount
我得到的错误是:
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
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']
回溯(最近一次呼叫最后一次):
文件“6.py”,第65行,在
nheads[i].追加(头[j][i])
索引器:列表索引超出范围
utkarsh@utkarsh-Lenovo-G580:~/crypto$python 6.py
回溯(最近一次呼叫最后一次):
文件“6.py”,第60行,在
打印标题[5][2]
索引器:列表索引超出范围
两种可能性:
1.标题列表未正确初始化,因此其长度小于6。
2.n大于头部的长度[5]。
尝试打印(str(头[5])。如果发生错误,则为案例1,否则为案例2。
另外,请依次尝试len(head)和len(head[5])。由于列表是列表的列表,因此使用的第二个元素选择器是选择包含列表中的元素,而不是二进制字符串中的字节元素
尝试“heads[5][0][n]”而不是“heads[5][n]”请发布您正在运行的代码示例、运行该代码得到的实际回溯以及预期输出。如果
heads[5]
返回的是单个项目列表,您当前是否正在尝试heads[5][char char index]
当您想要的是heads[5][char 0][char index]
?我也试过了,我得到的错误字符串索引超出了范围。