Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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_Regex_For Loop - Fatal编程技术网

Python 索引器:没有这样的组

Python 索引器:没有这样的组,python,regex,for-loop,Python,Regex,For Loop,我试图将两行的if语句合并为一行: matchesSense = [[m.start(), m.end(), m.start()*3+i, m.end()*3+i] for m in re.finditer(seq._data, protSense._data)] matchesSense = [m for m in matchesSense if m[2] < len(record._seq._data)] matchesSense=[[m.start(),m.end(),m.star

我试图将两行的if语句合并为一行:

matchesSense = [[m.start(), m.end(), m.start()*3+i, m.end()*3+i] for m in re.finditer(seq._data, protSense._data)]
matchesSense = [m for m in matchesSense if m[2] < len(record._seq._data)]
matchesSense=[[m.start(),m.end(),m.start()*3+i,m.end()*3+i]用于re.FindItemr中的m(seq.数据,ProSense.\u数据)]
Matchesse=[m代表Matchesse中的m,如果m[2]
matchesse=[[m.start(),m.end(),m.start()*3+i,m.end()*3+i]对于m-in-re.finditer(seq.\u数据,protexense.\u数据),如果m[2]
使用这两行代码时,代码工作正常。但当我使用组合行时,我得到了以下eror:“索引器:没有这样的组” 知道为什么会发生这种错误吗

我已经做了类似的两行组合,没有出现错误:

matchesSense = [[m.start(), m.end()] for m in re.finditer(seq_record._seq._data, 2*record._seq._data)]
matchesSense = [m for m in matchesSense if m[0] < len(record._seq._data)]
matchesse=[[m.start(),m.end()]用于re.FindItemer中的m(顺序记录数据,2*记录数据)]
Matchesse=[m代表Matchesse中的m,如果m[0]
matchesse=[[m.start(),m.end()]对于m-in-re.finditer(seq\u-record.\u-seq.\u-data,2*record.\u-seq.\u-data),如果m[0]
在双语句版本中,语句2的
m[2]
引用语句1的结果内部列表元素中的元素
m.end
。当您组合这两条语句时,
m[2]
引用
re.finditer
的第二个元素,而不是该元素的
m.end
。 因此,两个版本的结果并不相同

matchesSense = [[m.start(), m.end()] for m in re.finditer(seq_record._seq._data, 2*record._seq._data)]
matchesSense = [m for m in matchesSense if m[0] < len(record._seq._data)]
matchesSense = [[m.start(), m.end()] for m in re.finditer(seq_record._seq._data, 2*record._seq._data) if m[0] < len(record._seq._data)]