如何比较列表在Python

问题描述:

如果我有3个表是这样的:如何比较列表在Python

general_list = ['P' ,  'J' , 'C', 'H' ,  'O'] 

real_list = ['Python', 'Java' , 'C' , 'Html' , 'Other'] 

,并呼吁其他列表

selected_items = [ 'Python' , 'Php'] 

我想selected_itemsreal_list比较,所以我可以有当结果元素在列表0 or 1,所以我想要做这样的事情:[ 1 , 0 , 0, 0 , 1] 然后检查general_list中的项目何时被选中并得到如下结果['P' , 'O']

我真的不知道该怎么做?

+4

什么尝试到目前为止? – MSeifert

+0

应该试一试吗?铅笔和纸张会是一个好的开始? –

+0

@MSeifert我只是不知道从哪里开始,所以为此我询问了任何想法,因为我不想让别人为我编码,只是给我一个提示 – EgzEst

您可以用两个列表内涵做到这一点:

inlist = [True if x in selected_items else False for x in real_list] 
result = [v for i, v in enumerate(general_list) if inlist[i]] 

好像一个XY problem。如果你真正想要的是用selected_items来获得最终结果,那么:

this_is_useful = {'Python': 'P', 'Java': 'J', 'C': 'C', 'Html': 'H'} 

然后,你可以通过做

if 'Python' in this_is_useful: 
    print "Yes!" 

检查'Python'属于要获得最终结果:

selected_items = [ 'Python' , 'Php' ] 
result = [this_is_useful.get(l, 'O') for l in selected_items]