Comparing/Filtering Two Lists

Hi everyone. I’m two months new to Dynamo, and I’ve learned a lot but still have a ways to go.
I have two lists on Dynamo created from two Excel files (created from parameter lists and a schedule). On List 1 there is just one level, and on list 2 there are seven different levels. I filtered out list 2 so that I only see the top level (index 0).
I would like to compare these lists so that if any of the names from List 1 appear on List 2, it will apply its corresponding list parameters levels. Meaning if “Schedule Appear On” in List 1 is also in List 2, it will apply the corresponding GUID, Group, Type, etc that I pulled off of List 2.
I tried ==, compare, filter boolean, etc to compare list 1 and List 2 and only pump out which values appear in both lists but I’m coming up empty.
Anyone have any ideas, or a way to make all this simpler? I could do it on Excel fairly quickly but that’s multiple more steps I don’t want to have to put my team through.
Thanks in advance.


Just as an FYI, list levels refers to the degree of nested levels in a list. I think you’re just describing the number of sub lists. Nodes even show you the list levels in the output preview. In my example below, you can see that List 2 has 2 list levels (@L2) - 1 being the individual items and 2 being the list that contains them. The output of the == node has 3 list levels - 1 being the individual items, 2 being the lists that contain them, and 3 being the overall list containing the sublists.

As for your question, you need to be sure that you’re checking each individual item against the list separately. Here are two options.

Gotcha, thanks for the reply! I’m wondering if some of the problems are because the nodes aren’t reading my lists as string? When I tried using FilterByBoolMask, that was an error popping up. I know I’ve used a node in the past to convert these texts to strings but for the life of me I can’t find them.

They should be strings coming from Excel. What did the error say? Do you have list levels set correctly?

When I ran your == node through the mask of Filte By Boolean, I didn’t get the errors (which is a step in the right direction). But I am still coming up short. The == is returning only False for every indexes. I flipped the X and Y inputs and still came up short.

You still have the lacing set to longest, so you’re not getting individual comparisons against the whole list. FilterByBoolMask should also be at @L2.