動(dòng)漫人物
2019-12-13 15:10:37
我想比較2個(gè)可迭代項(xiàng)并打印出現(xiàn)在兩個(gè)可迭代項(xiàng)中的項(xiàng)目。>>> 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]) ^但這給我一個(gè)無(wú)效的語(yǔ)法錯(cuò)誤,該錯(cuò)誤^已放置在。這個(gè)lamba函數(shù)有什么問(wèn)題?
3 回答

慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
您將放在if最后:
[y for y in a if y not in b]
列表解析的編寫(xiě)順序與其嵌套的完整指定副本的書(shū)寫(xiě)順序相同,實(shí)質(zhì)上,以上聲明翻譯為:
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)
但是列表理解必須至少?gòu)囊粋€(gè)外部循環(huán)開(kāi)始。

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
這不是lambda函數(shù)。這是一個(gè)列表理解。
只需更改順序:
[ y for y in a if y not in b]
添加回答
舉報(bào)
0/150
提交
取消