列表理解-有条件

问题描述

对于这两个列表:

++

所需的输出是:

A=['3.40','4.00','151.00','8.00','81.00','23.00','17.00','8.50','5.00','SCR','13.00']
B=['11','5','2','4','6','9','7','8','10','1','12','3']

所以-列表“ A”和列表“ B”的长度相同。列表'C'与列表'B'相同-但是在列表'A'中没有'SCR'存在的值。

我对此的尝试是:

C=['11','3']

谢谢

解决方法

只需将它们拉在一起:

C = [b for a,b in zip(A,B) if a != 'SCR']
,

根据我认为您要完成的工作,我认为您需要这样做:

C = [B[x] for x in range(len(B)) if A[x] != 'SCR']
,

使用内置的enumerate函数很简单:

[x for (idx,x) in enumerate(B) if A[idx] == 'SCR']