It's a common task to verify if one or more elements reside within a list. Instead of devising an elaborate function, you can utilize the following concise approaches.
The Python or operator evaluates its arguments sequentially, returning the first truthy or non-empty value. While this may seem like a solution, it falls short in the case of lists. As demonstrated above, (1 or 2) in a evaluates to False, while (2 or 1) in a evaluates to True. This happens because 1 evaluates to False in a Boolean context, resulting in the expression being equivalent to False in a.
A more efficient and readable method is to employ a list comprehension or set intersection. Using list comprehension, you can filter the elements of the first list based on their presence in the second list. For instance:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
Alternatively, you can convert the lists to sets, perform set intersection, and utilize the resulting set's Boolean value. This approach is advantageous when handling duplicate elements efficiently:
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
Both empty lists and empty sets evaluate to False, allowing you to assess their presence directly using Boolean logic.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3