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']]