为什么词典只打印最后3个项目?

Vin*_*ort 1 python dictionary python-3.x

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)
Run Code Online (Sandbox Code Playgroud)

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

{'A': 's', 'Q': 's', 'K': 's'}
Run Code Online (Sandbox Code Playgroud)

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

osp*_*hiu 5

就像其他人在评论中提到的那样,字典中不能有重复的键,Python知道要使用在重复声明中设置的最新值来更新现有键。

您可能有一个具有元组不可变)或列表可变)作为其值的Dictionary 。

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

'Ah', 'As', 'Ac', 'Ad' , 'Kh', 'Ks' ... 
Run Code Online (Sandbox Code Playgroud)

您可以用以下方式表示该数据:

d = { 'A' : ('h', 's', 'c', 'd'), 'K' : ('h', 's') }
Run Code Online (Sandbox Code Playgroud)

如果您要更改列表中的数据,列表值也可以使用。(或者如果您不想重复的值,请设置

d = { 'A' : ['h', 's', 'c', 'd'], 'K' : ['h', 's'] }
Run Code Online (Sandbox Code Playgroud)

这样,您就可以从本质上讲出您的共同角色是您的关键。

  • 就个人而言,当两个不同的键具有相同的哈希值时,我仅在字典/哈希表的上下文中知道“冲突”一词,而在这里情况并非如此。此处使用相等的键,因此期望替换所关联的值,否则(`d = {}; d [“ a”] =“ a”; d [“ a”] =“ b”; print(d [ “ a”]`)不会达到您的期望(即更新“ a”)。因此,python“删除重复键”不是唯一的选择,而是唯一可能的选择。 (2认同)