【问题标题】:How can I merge multiples dictionaries resulting from a for loop? [duplicate]如何合并由 for 循环产生的多个字典? [复制]
【发布时间】:2020-11-30 16:36:27
【问题描述】:

我的问题如下:

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、TTTTTTCT 等。 上面的代码给了我以下结果:

{'AGATC': 4}
{'AATG': 1}
{'TATC': 5}

字典键是我必须查找的核苷酸链。数字(值)是这些核苷酸连续重复的次数。 所以,为了启发,第一个结果意味着我的正则表达式在文件中的一条长 DNA 链中找到了 AGATCAGATCAGATCAGATC。

我期待的是 {'AGATC': 4, 'AATG': 1, 'TATC': 5}。 如何将这 3 个不同的值合并到一个字典中?

【问题讨论】:

    标签: python dictionary for-loop merge


    【解决方案1】:

    首先要完全按照说明回答问题,您可以使用 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-05
      • 2012-09-02
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多