比较两个词典和打印共同词

时间:2014-11-26 16:22:33

标签: python csv dictionary conditional

我有两个带有多个列的制表符分隔文件。我使用了2个词典来存储感兴趣的特定列。

import csv
dic1={}
dic2={}
with open("Table1.tsv") as samplefile:
    reader = csv.reader(samplefile, delimiter="\t")
    columns = zip(*reader)
    for column in columns:
        A, B, C, D = columns

with open("Table2.tsv") as samplefile1:
     reader = csv.reader(samplefile1, delimiter="\t")
     columns = zip(*reader)
     for column1 in columns:
        A1, B1, C1 = columns

dic1['PMID'] = A  # the first dictionary storing the data of column "A"
dic2['PMID'] = A1 # the second dictionary storing the data of column "A1"

# statement to compare the data in dic1[PMID] with dic2['PMID'] and print the common

问题:用于比较两个词典并在两者中打印公共数据的正确逻辑/条件语句是什么。

1 个答案:

答案 0 :(得分:1)

您可以将设置交叉点用作:

>>> d1={'a':2,'b':3,'c':4,'d':5}
>>> d2={'a':2,'f':3,'c':4,'b':5,'q':17}
>>> dict(set(d1.items()) & set(d2.items()))
{'a': 2, 'c': 4}

针对您的具体问题,这是代码:

>>> dic1={}
>>> dic2={}
>>> dic1['PMID']=[1,2,34,2,3,4,5,6,7,3,5,16]
>>> dic2['PMID']=[2,34,1,3,4,15,6,17,31,34,16]
>>> common=list(set(dic1['PMID']) & set(dic2['PMID']))
>>> common
[1, 2, 3, 4, 6, 34, 16]