Python:列表比较

时间:2012-11-16 05:30:40

标签: python

请帮帮我。如果b中的元素位于a中,那么我想将a(已配对)放入新列表(C)。

a=['SMAD3', 'CYP11A1']
['SMAD3', 'ZNF83']
['SMAD3', 'PSMD11']
['SMAD3', 'MTF2']
['SMAD3', 'CFDP1']
['SMAD3', 'ST6GALNAC2']...

b=['NPR2']
['COL2A1']
['GNPTAG']
['ENPP1']
['COL6A1']
['WISP3']...

我这样编码:

C=[ ]
for data in a:
   for line in b:
  if ...
  C.append(a)

如何填写if

3 个答案:

答案 0 :(得分:0)

假设a和b是列表:

c = []
for data in a:
    if data in b:
        c.append(data)

或者,作为列表理解:

c = [data for data in a if data in b]

答案 1 :(得分:0)

C=[ ]

for data in a:
    if data[0] in b or data[1] in b:
         C.append(data)

答案 2 :(得分:0)

使用此全局解决方案a可以是多个对,b可以是每个内部列表中的多个元素。

>>>a=[['ad','re','er'],['ew','fg']]  
>>>b=[['erw','dfger'],['we']] 

无论如何这里是如何做到的:

c=[]  
modified_b=[]  
a=[['aaaa','bbbb'], ['ccccc', 'dddd']]  
b=[['aaaa']] 

for  i in b:  
     modified_b.extend(i)   # this will make b one list instead of list of lists  

for data in a:  
    for element in data:  
        if element in modified_b:  
            c.append(data)  
            break            #this will break the inner loop once you find b in a