今天我需要用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)
答案 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语句。这就是为什么你没有得到任何输出的原因。