为什么dictionnary只打印最后3项?

时间:2016-06-28 14:34:26

标签: python python-3.x dictionary

d ={"A":"h","K":"h","Q":"h","A":"c","K":"c","Q":"c","A":"d","K":"d","Q":"d","A":"s","K":"s","Q":"s"}

print(d)

当我这样做时,会打印出来:

{'A': 's', 'Q': 's', 'K': 's'}

如何打印出所有内容?我很难找到如何在不同的键上编写具有相同值的字典。

2 个答案:

答案 0 :(得分:4)

正如其他人在评论中提到的,你不能在字典中有重复的密钥,Python知道更新现有的密钥,其最新值已被设置为在重复的声明中。

你可以拥有一个包含元组不可变)或列表 mutable )的词典它的价值。

因此,如果您想获得以下耦合信息:

'Ah', 'As', 'Ac', 'Ad' , 'Kh', 'Ks' ... 

您可以使用以下代码表示该数据:

d = { 'A' : ('h', 's', 'c', 'd'), 'K' : ('h', 's') }

如果要改变列表中的数据,列表值也可以起作用。 (或如果您不想重复值则设置)

d = { 'A' : ['h', 's', 'c', 'd'], 'K' : ['h', 's'] }

通过这种方式,你基本上可以将你的共同角色作为你的关键因素。

答案 1 :(得分:0)

你可以有这样的其他列表数据结构:

my_list = [["A", ["h", "c", "d", "s"]], ["K", ["h", "c", "d", "s"]], ["Q", ["h", "c", "d", "s"]]]

甚至可能将其转换为更有用的字典,如下所示:

dic = {}

for item in my_list:
    key = item[0]
    value = item[1]
    dic[key] = value
print(dic)

输出:

{'Q': ['h', 'c', 'd', 's'], 'K': ['h', 'c', 'd', 's'], 'A': ['h', 'c', 'd', 's']}