码迷,mamicode.com
首页 > 其他好文 > 详细

列表生成式中的 if else

时间:2019-12-31 23:40:53      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:cond   不用   style   nbsp   个数   lse   bsp   col   作用   

列表推导式总共有两种形式:

① [x for x in data if condition]

# 此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表

② [exp1 if condition else exp2 for x in data]

# 此处if...else主要起赋值作用,当data中的数据满足if条件时将其做exp1处理,否则按照exp2处理,最后统一生成为一个数据列表

示例:

#1-100中3的倍数
p = [x for x in range(1,101) if x%3 == 0]

#1-100中,不是3的倍数的数去相反数,其余的数保持不变
q = [x if x%3==0 else -x for x in range(1,101)]

# 根据 v 是否为 datetime.time 类型来判断 (keys_list 和 item 都是列表;列表生成式生成字典时, else后面不用再写 k)
{k: v if not isinstance(v, datetime.time) else v.strftime("%H:%M:%S")  for k, v in zip(keys_list, item)})

 

 

end

列表生成式中的 if else

标签:cond   不用   style   nbsp   个数   lse   bsp   col   作用   

原文地址:https://www.cnblogs.com/neozheng/p/12127845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!