我想比較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 回答

墨色風雨
TA貢獻1853條經驗 獲得超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)
但是列表理解必須至少從一個外部循環開始。
添加回答
舉報
0/150
提交
取消