У меня есть список - ответы:
[0,1]
и другой список - вопросы:
[[0,ABC], [1,DEF], [3,XYZ]]
Как сравнить 2 и вернуть
ABC, DEF
на основе сравнения всех элементов в ответах на первые элементы в списке списка?
Вы можете использовать список и оставить второй элемент в questions, если первый элемент содержится в answers:
questions
answers
answers = set([0,1]) [i[1] for i in questions if i[0] in answers] # ['ABC', 'DEF']
Примечание: Использование набора вместо списка помогает снизить сложность с O(N*M) до O(N), как предлагает @RafaelC, при этом N - это длина вопросов, а M - длина ответов
O(N*M)
O(N)
N
M
Так как вы упомянули pandas
pandas
pd.DataFrame([[0,'ABC'], [1,'DEF'], [3,'XYZ']]).loc[lambda x : x[0].isin([0,1])][1].tolist() Out[494]: ['ABC', 'DEF']
Попробуйте:
[i[1] for i in lst2 if i[0] in lst1]
Хотя я не понимаю, какое это имеет отношение к пандам.