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

使用if语句进行列表理解

使用if语句进行列表理解

动漫人物 2019-12-13 15:10:37
我想比较2个可迭代项并打印出现在两个可迭代项中的项目。>>> a = ('q', 'r')>>> b = ('q')# Iterate over a. If y not in b, print y.# I want to see ['r'] printed.>>> print([ y if y not in b for y in a])                              ^但这给我一个无效的语法错误,该错误^已放置在。这个lamba函数有什么问题?
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您将放在if最后:


[y for y in a if y not in b]

列表解析的编写顺序与其嵌套的完整指定副本的书写顺序相同,实质上,以上声明翻译为:


outputlist = []

for y in a:

    if y not in b:

        outputlist.append(y)

您的版本尝试这样做:


outputlist = []

if y not in b:

    for y in a:

        outputlist.append(y)

但是列表理解必须至少从一个外部循环开始。



查看完整回答
反对 回复 2019-12-14
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

这不是lambda函数。这是一个列表理解。


只需更改顺序:


[ y for y in a if y not in b]


查看完整回答
反对 回复 2019-12-14
  • 3 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信