2017-02-14 47 views
-1
l=[1,2,24,3234,4,5,565] 
on = [3234] 

print [v for v in l[i] for i in range(len(l)) if v in on] 

在這裏,我得到的,
NameError:名字「我」是沒有定義多爲循環列表理解給NameError

+0

什麼你真的想要嗎?並且變量v被定義了兩次 – ZdaR

+0

我只是想明白爲什麼它會給出這樣的語法錯誤 – user5319825

回答

2

如果您想使用「在」您需要定義一個內部列表:

print [v for v in [l[i] for i in range(len(l))] if v in on] # [3234] 
+0

我的答案直接針對你的問題,你應該也聽取MSeifert的回答。 –

2

你實際上並不需要做的內循環:

[v for v in l if v in on] 
+0

ikr,我在列表理解中誤解了內部列表概念,jeff被清除了。旅行= [v for v in trip_obj [i] .order_data ['vehicle_no'] for i in range(0,len(trip_obj))if v in ongoing_vehicles]' – user5319825