如何合并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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...