python 三元推导式

我意图写一个三元推导式,将目标元组输出成我想要的列表
但是我在这个推导式中加入else 就会报错
我想问一下有没有解决的方法(除了拆开写)

a=((1136865.0,), (1213856.0,), (1234744.0,), (1277805.0,), (1337058.0,), (1357177.0,), (1414515.0,), (1429136.0,), (1429799.0,), (1444109.0,),('W123',))
print([str(int(i[0]))  for i in a if re.compile('^[a-zA-z]{1}.*$').match(str(i[0])) is None else i[0]])

列表推导式的构成:

list = [<expression1> if <expression2> else <expression3> for <value1> in <value2> if  <expression4>

其中expression1是当满足条件expression2时要放入list的值,expression3是不满足expression2时要放入list的值,value1是value2中的元素,expression4确保满足条件时放入list,否则跳过当前元素。
所以整个过程是:
先执行 for <value1> in <value2> 将元素获取出来;
然后执行 if <expression4> 判断是否需要放入列表,不满足expression4条件则跳过进入下一个元素;
再执行 <expression1> if <expression2> 判断是否满足expression2条件,是的话将expression1表达式的值添加进list里;
最后执行 else <expression3> 将满足expression4条件但不满足expression2条件的expression3表达式的值添加进list里

print([str(int(i[0])) if re.compile('^[a-zA-z]{1}.*$').match(str(i[0])) is None else i[0] for i in a])