比较两个大小不同的列表并返回bool-list

时间:2020-03-26 13:05:05

标签: python list loops dataframe boolean

假设我们有两个列表:

尺寸(15)

uesrDetails

大小(455)

!rememberMe

如果list1中的项目在list2中,如何返回带有布尔值的Size(15)的新列表?
在list2中,有些项目会多次出现,在list1中,每个项目只会出现一次。

结果应如下所示:Size(15)

const setBeforeLists = useCallback(
    (lists) => {
        beforeListsChanged(lists);
    },
    [beforeListsChanged]
);

const setUserDetails = useCallback(
    (userDetails) => {
        userDetailsChanged(userDetails);
    },
    [userDetailsChanged]
);

useEffect(() => {
//userDetails.id === 'empty' is guest.
   if (
        userDetails.id !== 'empty' &&
        !userDetails.rememberMe
        ) {
            logOut(setUserDetails, setBeforeLists);
        }
    }, [
        setBeforeLists,
        setUserDetails,
        userDetails
]);

1 个答案:

答案 0 :(得分:5)

您可以通过简单的列表理解来做到这一点。由于您必须使用innnlen(list1),因此可以使用set将查找复杂度降低到O(1),总体复杂度为O(n)

list1 = [1012, 1017, 1037, 1057 , 1068]
set2 = set([1029, 1049, 1012, 1117,1057])

[i in set2 for i in list1]
# [True, False, False, True, False]