在python中重新排序列表

时间:2016-01-23 11:01:19

标签: python list match

这里我需要将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)

2 个答案:

答案 0 :(得分:2)

使用list comprehension

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