我有两个选项卡分隔的文件,具有多个列。我使用了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


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

最佳答案

您可以将交集设置为:

>>> 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]

09-06 23:43