为了账号安全,请及时绑定邮箱和手机立即绑定

如何将'if'条件合并到for循环语句中

如何将'if'条件合并到for循环语句中

胡说叔叔 2021-06-06 00:00:00
data = [(1,'hi'),(2,'hello'),(3,'hi'),(4,'hi'),(5,'hello'),(6,'hello'), (7,'hi'),(8,'hello')]new_data = []for i in data:    if i[1] == 'hi':        new_data.append(i)print(new_data)输出:[(1, 'hi'), (3, 'hi'), (4, 'hi'), (7, 'hi')]我是python的初学者。我想要相同的输出,但想要减少“For”循环中的代码量并提高效率。
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

虽然您的循环很好,但您可以使用列表理解

new_data = [i for i in data if i[1] == 'hi']


查看完整回答
反对 回复 2021-06-09
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您可以使用列表理解和过滤器在一行中写入。在这个问题上有一个关于过滤器的很好的解释。使用过滤器可以利用惰性求值,这有利于缩短执行时间。


data = [(1,'hi'),(2,'hello'),(3,'hi'),(4,'hi'),(5,'hello'),(6,'hello'), (7,'hi'),(8,'hello')]

new_data = list(filter(lambda i: i[1] == 'hi', data))

输出


[(1, 'hi'), (3, 'hi'), (4, 'hi'), (7, 'hi')]


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号