Python 索引器:没有这样的组
我试图将两行的if语句合并为一行: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
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)]