将列表与列表列表进行比较,并从列表列表中返回其他元素

问题描述 投票:1回答:3

我有一个清单 - 答案:

[0,1] 

和另一份清单清单 - 问题:

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

我如何比较2和返回

 ABC, DEF 

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

python list tuples
3个回答
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
投票

既然你提到了pandas

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

0
投票

尝试:

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

虽然我不明白这与熊猫有什么关系。

© www.soinside.com 2019 - 2024. All rights reserved.