用其他字典的值替换dict键

时间:2014-02-16 05:24:34

标签: python

今天我需要用dict二的值替换dict的键。 Dict one有多个键,我只想替换匹配dict 2的键。 最后我想用旧密钥(不匹配的密钥)和新密钥(当它们匹配时已经改变了)得到了一个字典。

我写了下面的脚本,但我没有输出,所以我不确定我做得对,有人可以向我解释一下吗?

非常感谢

ERCC = {}
my_file = open('a.txt')
for line in my_file:
    config,name = line.strip().split()
    ERCC[contig] = name

RSEM = {}
names_file = open('b.txt')
for line in names_file:
    genes, count = line.strip().split()
    RSEM[gene] = count

def convert(RSEM,ERCC):
    for key, value in RSEM.items():
        for keys, values in ERCC.items():
            if keys == key:
                RSEM[key] = values
    return RSEM
    print RSEM

convert(RSEM, ERCC)

3 个答案:

答案 0 :(得分:1)

     >>> dic={}
    >>> for k,v in myboi.items():
r=input("Enter item to Update write in ""=")
if r:
    dic[r]=v
else:
    dic[k]=v
    Enter item to Update write in ="Mahesh"
    Enter item to Update write in ="Saka"
    >>> 
    >>> dic
    {'Mahesh': 'Mahesh', 'Saka': 'Mahesh'}
   You want compulsary input key in this program you want update one or more time you empty dic={}
   result={'Mahesh': 'Mahesh', 'Saka': 'Mahesh'}


    >>> fi.close()
   >>> fi=open("m.txt","r")
   >>> fi.readlines()
    ['Maheshname']
   >>> fi=open("m.txt","w+")
   >>> for k,v in myboi.items():
fi.write("'"+k+"'"+":"+"'"+v+"'")


    >>> fi.close() 
    >>> fi=open("m.txt","r")
    >>> fi.readlines()
   ["'Mahesh':'Mahesh''name':'Mahesh'"]

答案 1 :(得分:0)

这是转换函数的双线程:

RSEM = {key: ERCC.get(key, RSEM[key]) for key in RSEM}
print RSEM

要将dict转储到文件中,请执行以下操作:

with open("your_file_name", "w") as dumpfile:
    dumpfile.write(str(RSEM))

答案 2 :(得分:0)

您的代码似乎没问题。但是您在return语句之前使用了print语句。 convert函数的执行在return ***处停止,并且根本不执行print语句。这就是为什么你没有得到任何输出的原因。