Home > Mobile >  How to check presence of all three elements of list in another list
How to check presence of all three elements of list in another list

Time:06-01

Hello I am new to Python and need some help on this

I have the following list of string

my_list = ["-Public-", "-Private-", "-Protected-"]

and another list

sgList = [ 'launch-wizard-16', 'launch-Private-1', 'default', 'EP-Protected-12', 'default', 'launch-Public-13']

I wanted to check if all the three elements from the my_list list are present in sgList if yes then return True otherwise False. If even one of them is not present then it should return false.

I have the following code but this will return True even if one of them is found.

imported = (any(rails.lower() in sg.lower() for rails in my_list for sg in sgList))

Can someone please guide me on what I can do here to check the presence of all three elements

CodePudding user response:

You can combine all and any:

my_list = ["-Public-", "-Private-", "-Protected-"]
sgList = ['launch-wizard-16', 'launch-Private-1', 'default', 'EP-Protected-12', 'default', 'launch-Public-13']

output = all(any(x in sg for sg in sgList) for x in my_list)
print(output) # True

Given x == '-Public-', for example, any(x in sg for sg in sgList) tests if '-Public-' is a substring of any of the items in sgList. Since there is such an item ('launch-Public-13'), any(x in sg for sg in sgList) evaluates to True.

Now all(... for x in my_list) checks if this holds for every item x in my_list.

CodePudding user response:

all(elem in sgList for elem in my_list)
  • Related