我有一个清单 - 答案:
[0,1]
和另一份清单清单 - 问题:
[[0,ABC], [1,DEF], [3,XYZ]]
我如何比较2和返回
ABC, DEF
基于列表列表中第一个元素的答案中所有元素的比较?
如果第一项包含在list comprehension中,您可以使用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
答案的长度
既然你提到了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]
虽然我不明白这与熊猫有什么关系。