列表与列表列表的比较,并从列表列表中返回另一个元素

时间:2019-04-25 20:35:48

标签: python list tuples

我有一个列表-答案:

[0,1] 

和另一个列表列表-问题:

[[0,ABC], [1,DEF], [3,XYZ]]

如何比较2并返回

 ABC, DEF 

基于对列表中第一个元素的答案中所有元素的比较?

3 个答案:

答案 0 :(得分:2)

您可以使用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的答案长度

答案 1 :(得分:1)

自从您提到pandas

pd.DataFrame([[0,'ABC'], [1,'DEF'], [3,'XYZ']]).loc[lambda x : x[0].isin([0,1])][1].tolist()
Out[494]: ['ABC', 'DEF']

答案 2 :(得分:0)

尝试:

[i[1] for i in lst2 if i[0] in lst1]

尽管我不明白这与熊猫有什么关系。