Python 3.x 为什么不是';我的字典打印不正确吗?

Python 3.x 为什么不是';我的字典打印不正确吗?,python-3.x,Python 3.x,我不知道为什么,但是这个函数末尾的dict无法完全打印。它最多只能打印四个键+值,它们只是前四个。奇怪的是,第三个和第四个出现在相反的位置 genelist=['ABC','ABC','ABC','ABC','ABC','ABC','ABC','ABC'] def recombAB(x): rec_total = 0 primlistAB = [] for item in x: split = list(item) del split[2

我不知道为什么,但是这个函数末尾的dict无法完全打印。它最多只能打印四个键+值,它们只是前四个。奇怪的是,第三个和第四个出现在相反的位置

genelist=['ABC','ABC','ABC','ABC','ABC','ABC','ABC','ABC']

def recombAB(x):

    rec_total = 0
    primlistAB = []
    for item in x:
        split = list(item)
        del split[2]
        primlistAB = primlistAB + split

    listAB = [primlistAB[0] + primlistAB[1], primlistAB[2] + primlistAB[3], primlistAB[4] + primlistAB[5], primlistAB[6] + primlistAB[7], primlistAB[8] + primlistAB[9], primlistAB[10] + primlistAB[11], primlistAB[12] + primlistAB[13], primlistAB[14] + primlistAB[15]]

    print(listAB)

    dictAB = {listAB[0] : freq1, listAB[1] : freq2, listAB[2] : freq3, listAB[3] : freq4, listAB[4] : freq5, listAB[5] : freq6, listAB[6] : freq7, listAB[7] : freq8}


    print(dictAB)
重组(基因列表)

这给了我listAB=['AB','AB','AB','AB','AB','AB','AB','AB','AB']

和dictAB={'AB':9,'AB':9,'AB':1,'AB':1}

我要找的是{'AB':479,'AB':473,'AB':15,'AB':13,'AB':9,'AB':9,'AB':1,'AB':1}


非常感谢您的帮助。

当我部分运行您的代码时,通过调用带有
genelist
作为参数的函数,我得到了
listAB
的以下输出:

['AB', 'ab', 'Ab', 'aB', 'AB', 'ab', 'Ab', 'aB']
如果仔细观察,会发现其中有重复的值,基本上只有4个不同的值

因此,在构建字典时,可以为同一个键分配多个值,覆盖以前的值

当我寻找的是
{'AB':479,'AB':473,'AB':15,'AB':13,'AB':9,'AB':9,'AB':1,'AB':1}

字典是从键到值的一对一映射。这意味着每个键唯一地标识字典中的单个元素。但是,在所需的字典输出中,您将有单个键映射到多个不同的值(例如,
AB
479
9
)。这是不可能的

如果不需要map属性,而只想存储成对的值,则可以使用元组列表:

[('AB', 479), ('ab', 473), ('Ab', 15), ('aB', 13), ('AB', 9), ('ab', 9), ('Ab', 1), ('aB', 1)]
或者,如果您确实需要能够从“键”中查找值,您可以通过映射到值列表来创建多值字典:

{'AB': [479, 9], 'ab': [473, 9], 'Ab': [15, 1], 'aB': [13, 1]}

我怀疑你的字典打印正确,你给了它重复的键。(而且,你提到的“相反的点”听起来像是你认为字典是有序的。)你能把你的代码修改成a,或者至少给我们看看什么是
print(listAB)
print(dictAB)
return吗?在编辑我为你准备的东西时,我意识到这是因为有重复。有没有办法保留所有的值和赋值,即使是重复?而且,我没有意识到字典是无序的;我对这一点是全新的…在为DSM编辑我的问题时,我意识到这就是问题所在。有没有一种方法可以分别打印每个值,即使它们是重复的?太棒了。谢谢你的帮助不客气!请记住投票选出有用的答案,并接受解决您问题的答案。这同样适用于您提出的其他问题。另见。