Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于包含字符串的列表,列表索引超出范围错误_Python_List_Indexing_Binary - Fatal编程技术网

Python 对于包含字符串的列表,列表索引超出范围错误

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个字节 我的目标是通过

我有一个名为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
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]
?我也试过了,我得到的错误字符串索引超出了范围。