如果匹配项目列表,返回列表的T / F列表的优雅方法是什么?
例如:
[1,3,5,4]
in
[4,3,7,5,8]
返回:
[True, True, False, True, False]
答案 0 :(得分:4)
Testing membership是O(1),而列表中的测试成员资格是O(n)。所以(特别是对于一个大的列表)你应该在测试成员资格之前将firstlist
转换为一个集合。
firstset = set(firstlist)
[(v in firstset) for v in otherlist]
答案 1 :(得分:3)
使用列表理解: -
>>> list1 = [4, 3, 7, 5, 8]
>>> list2 = [1, 3, 5, 4]
>>> new_list = [elem in list2 for elem in list1]
>>> new_list
[True, True, False, True, False]
>>>
答案 2 :(得分:2)
使用列表理解:
[(v in firstlist) for v in otherlist]