Home > Software design >  Python - Selecting elements of list b containing elements of list a
Python - Selecting elements of list b containing elements of list a

Time:08-19

There is a_list and b_list. We are in the process of sorting out only the b_list elements that contain elements of a_list.

a = ["Banana", "Orange", "Almond", "Kiwi", "Cabbage"]
b = [["Banana", "Pencil", "Water Bucket"], ["Orange", "Computer", "Printer"], ["Snail", "Cotton Swab", "Sweet Potato"]]
c = []

If the first element of list in b_list matches an element of list a_, this list element is put into c_list.So the desired result is

c = [["Banana", "Pencil", "Water Bucket"], ["Orange", "Computer", "Printer"]]

I've searched several posts, but couldn't find an exact match, so I'm leaving a question. help

CodePudding user response:

Here's your answer

for i in b:
    if i[0] in a:
        c.append(i)

CodePudding user response:

c =[i for i in b if i[0] in a]

CodePudding user response:

a = [i for i in range(1, 10)]
b = [[1, 10, 100], [2, 20, 200], [10, 100, 1000]]
c = []

for sublist in b:
    if sublist[0] in a:
        c.append(sublist)

>>> c
[[1, 10, 100], [2, 20, 200]]

CodePudding user response:

How about using iterators:

a = ["Banana", "Orange", "Almond", "Kiwi", "Cabbage"]
b = [["Banana", "Pencil", "Water Bucket"], ["Orange", "Computer", "Printer"], ["Snail", "Cotton Swab", "Sweet Potato"]]

a_iter = iter(a)
print([obj for obj in b if next(a_iter) in obj])

Output:

[['Banana', 'Pencil', 'Water Bucket'], ['Orange', 'Computer', 'Printer']]
  • Related