Python list内容处理?

已知:
a = re.findall('<img loading="lazy" referrerpolicy="same-origin" class="mainImg" src="(.*?)" data-width=".*?" ' #src="(.*?)"
'data-height=".*?" onload=".*?" onerror=".*?" onclick=".*?" trackinfo=".*?" style=".*?">', b)

print(a)结果如下:
['http://www.xyz/abc/1.jpg_640x640.jpg','http://www.xyz/efg/2.jpg','http://www.xyz/abc/3.jpg_640x640.jpg','http://www.xyz/efg/4.jpg']

如何处理才能获得如下结果?

['http://www.xyz/abc/1.jpg','http://www.xyz/efg2.jpg','http://www.xyz/abc/3.jpg','http://www.xyz/efg/4.jpg']

针对特定的有下划线加尺寸的字符串,在获取了图片链接后直接用字符串切割:

l=['http://www.xyz/abc/1.jpg_640x640.jpg','http://www.xyz/abc/2.jpg','http://www.xyz/abc/3.jpg_640x640.jpg','http://www.xyz/abc/4.jpg']
a=[x.split('_')[0] for x in l]
print(a)

a = [n if re.findall('有尺寸',n)==None else re.sub('尺寸','',n) for n in re.findall('...............', b)]

a = re.findall('\'http.*jpg\'',b)

a = re.findall('\'<img src="/.*?\.png"\'',b)
c = re.findall('<img loading="lazy" referrerpolicy="same-origin" class="mainImg" src="(.*?)" data-width=".*?" '     #src="(.*?)"
                'data-height=".*?" onload=".*?" onerror=".*?" onclick=".*?" trackinfo=".*?" style=".*?">', b)

l =[k.split('.jpg')[0]+'.jpg' for k in c]