具有多个值的字典键不打印所有值

时间:2018-03-20 02:25:18

标签: python bioinformatics biopython

我有一个字典,其中包含重复的键,但这些键的值不同,我想拉出特定键的所有值。这是我的意思的缩写版本:

x_table = {'A':'GCT','A':'GCC','A':'GCA','A':'GCG'}

AA_list = [{'A'}]

for aa in AA_list:
    if aa in x_table:
        print x_table[aa]

由于某种原因,它只会从x_table中提取其中一个值。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

字典不能有同一个键的多个条目 想一想 - 您打算如何获取价值? 应该x_table['A']返回什么? 'GCT'或者'GCA'

您可以做的是对您的数据结构进行细微更改并保存列表而不是单个值 例如:x_table = {'A':['GCT','GCC','GCA','GCG'], 'B' = ['some', 'other', 'values']}

在你的例子中 - 你只有一把钥匙。根据您发布的信息,我无法判断它是小样本还是一般情况。如果是一般情况,也许list / set / tuple会更好地为您服务:('GCT','GCC','GCA','GCG')

如果您想更好地了解为什么,您无法为同一个密钥存储多个条目,您可以阅读in this link

答案 1 :(得分:-1)

也许你需要定义这样的dict结构:

x_table = {'A':['GCT','GCC','GCA','GCG']}

答案 2 :(得分:-1)

因此,字典作为一个集合实现。因此,您 不能 有多个相同的键,如下所示:

dict = {'a': 'blah', 'b': 'foo', 'b': 'bar'}; // ''b would only have the value 'bar'

字典的设计方式,他们不允许这样做。它们基本上是哈希映射,因此允许通过密钥快速访问值,但每个值只能有一个密钥。分配第二个键时,它会覆盖第一个键。

但是,您可以尝试将字典作为值来实现,如下所示:

x_table = {'A':{'a_1':GCT','a_2':'GCC','a_3':'GCA','a_4':'GCG'},'B':'blah'}

AA_list = ['A']['a_1]