2017-02-14 23 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