使用if语句进行列表理解

我想比较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函数有什么问题?


动漫人物
浏览 271回答 3
3回答

慕的地6264312

您将放在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)但是列表理解必须至少从一个外部循环开始。

一只甜甜圈

这不是lambda函数。这是一个列表理解。只需更改顺序:[ y for y in a if y not in b]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python