这里我需要将list1项目与list2项目进行比较,如果项目遗漏,那么我希望在list1的错过项目索引处插入False
。
我的输入是
list1 = [1,2,3,4]
list2 = [3,1,4]
例外输出
result = [1, False, 3, 4]
我试过了:
result = []
for x in list1:
for i in xrange(0,len(list2)):
if set(x) == set(list2[i]):
result.append(x)
答案 0 :(得分:2)
In [620]: [i if i in list2 else False for i in list1]
Out[620]: [1, False, 3, 4]
如果您不熟悉list comprehensions
,可以使用带循环的解决方案:
result = []
for x in list1:
if x in list2:
result.append(x)
else:
result.append(False)
print(result)
[1, False, 3, 4]
答案 1 :(得分:2)
使用if
conditional expression中的list
comprehension非常简单:
>>> list1 = [1, 2, 3, 4]
>>> list2 = [3, 1, 4]
>>> res = [i if i in list2 else False for i in list1]
>>> print(res)
[1, False, 3, 4]
这样做需要list1
列表中的每个元素,并检查in
是否为list2
第二个列表i
。如果是,则返回项False
本身,如果不返回cf org <orgname> --guid
cf space <spacename> --guid
。