Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较Python中的关键内容_Python_Dictionary_Key - Fatal编程技术网

比较Python中的关键内容

比较Python中的关键内容,python,dictionary,key,Python,Dictionary,Key,假设我有两本钥匙相同的字典 dict1 = {first_letter: a, second_letter:b , third_letter: c} dict2 = {first_letter: a, second_letter:b , third_letter: d} 我有相同的关键点,但我想比较关键点内的内容并打印交点 所以如果有另一本字典叫 intersection = {} 我想要结果 print intersection {a,b} 我有两个文件中的两个字典,我只想把两个文件

假设我有两本钥匙相同的字典

dict1 = {first_letter: a, second_letter:b , third_letter: c}

dict2 = {first_letter: a, second_letter:b , third_letter: d}
我有相同的关键点,但我想比较关键点内的内容并打印交点

所以如果有另一本字典叫

intersection = {}
我想要结果

print intersection

{a,b}
我有两个文件中的两个字典,我只想把两个文件的交集放在另一个文件中。因此,如果键包含相同的值,则将其存储到另一个文件中并打印出来

这是我的密码:

keys = ['lastname', 'firstname', 'email', 'id', 'phone']
dicts = []
second_dicts = []
third_dicts = []
intersection = []

with open("oldFile.txt") as f:
    for line in f:
        # Split each line.
        line = line.strip().split()
        # Create dict for each row.
        d = dict(zip(keys, line))
        # Print the row dict
        print d

        # Store for future use
        dicts.append(d)

print "\n\n"
with open ("newFile.txt") as n:
    for line in n:
        # Split each line.
        line = line.strip().split()
        # Create dict for each row.
        r = dict(zip(keys, line))
        # Print the row dict
        print r
        # Store for future use
        second_dicts.append(r)


print"\n\n"

#shared_items = set(dicts.items()) & set(second_dicts.items())

#print shared_items
#if oldFile has the same content as newFile then make a a newFile 
#called intersectionFile and print 
你可以这样做

>>> dict1 = {'a': 1, 'b':2 , 'c': 3}
>>> dict2 = {'a': 1, 'b':2 , 'c': 4}
>>> {dict1[i] for i in dict1 if dict1[i]==dict2[i]}
set([1, 2])
试试这个:

set(dict1.values()) & set(dict2.values())

这就是你想要的

dict1 = {a: 1, b:2 , c: 3}
dict2 = {a: 1, b:2 , c: 4}

common = []
for key, value in dict1.items():
    if dict2[key] == value:
        common.append(value)

intersection = set(common)
print intersection

交叉点是一个集合而不是一个字典。你需要澄清“交叉点”。如果
d1={'a':1,'b':2}
d2={'a':2,'b':1}
,它们的交点是什么?如果是
{1,2}
,@mirosval的答案是正确的。如果是空集合,@AvinashRaj是正确的。但是我从intersection=set(dicts.values())和set(second_dicts.values())中得到了错误的print set(dicts.values())和set(second_dicts.values())AttributeError:'list'对象没有属性'values',我一直从intersection=set(dicts.values())和set(second_dicts.values())中得到“AttributeError:'list'对象没有那么你确定你的
dicts
second\u dicts
是字典而不是列表吗?噢,你说得对。。。让我发布我的代码,我认为这会更有用……您可能应该让OP知道您的答案与@AvinashRaj之前所做的有所不同,并且他/她的示例对于他/她想要的是哪一个是模棱两可的。