如何解决如何合并for循环产生的多个字典?
我的问题如下:
dnaSequence = file2.readline()
for key in nucleotides:
keys = " ".join(key)
value = re.search(f"(?:({key}){{2,}}|({key}))",dnaSequence)
value = int(len(value.group(0)) / len(key))
STRs = {key: value}
print(STRs)
我必须解决此问题,方法是读取带有未知DNA链的文件,并使用正则表达式查找该链内核苷酸序列的最大重复。诸如AAGT,AGTC,TTTTTTTTCT等。 上面的代码给了我以下结果:
{'AGATC': 4}
{'AATG': 1}
{'TATC': 5}
字典键是我必须查找的核苷酸链。数字(值)是这些核苷酸连续重复自我的次数。 因此,为了启发起见,第一个结果意味着我的正则表达式在文件的长DNA链中找到了AGATCAGATCAGATCAGATC。
我期望{'AGATC':4,'AATG':1,'TATC':5}。 如何将这3个不同的值合并到一个字典中?
解决方法
首先要完全按照所述回答问题,您可以使用update
方法组合两个字典-这对要调用其方法的字典进行就地编辑。
answer = {}
for key in nucleotides:
# ... prepare value variable ...
STRs = {key: value}
answer.update(STRs)
但是在这种情况下,假设您只设置一个键,如果实际上不需要字典STRs
,则可以直接在输出字典中进行设置。
answer = {}
for key in nucleotides:
# ... prepare value variable ...
answer[key] = value
顺便说一句,在您的代码中,您没有使用所创建的变量keys
。