





Вы можете использовать понимание списка и оставить вторые элементы в 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 длина ответов.
Возможно, я хочу изменить answers, чтобы стать set. Сложность идет от O(N*M) к O(N), где N — длина вопросов, а M — длина ответов.
Пытаться:
[i[1] for i in lst2 if i[0] in lst1]
Хотя я не понимаю, какое это имеет отношение к пандам.
Поскольку вы упомянули pandas
pd.DataFrame([[0,'ABC'], [1,'DEF'], [3,'XYZ']]).loc[lambda x : x[0].isin([0,1])][1].tolist()
Out[494]: ['ABC', 'DEF']
Неясно, важен ли порядок вывода, и если да, то определяется ли он порядком ответов или вопросов?