精英干员瑕光 2022-02-15 10:48 采纳率: 76.5%
浏览 32
已结题

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]])
  • 写回答

2条回答 默认 最新

  • user-from-future 2022-02-15 12:38
    关注

    列表推导式的构成:

    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里

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用