字典 - 检查关键字是否有多个值

3
在我的程序中(用于搜索特定键),我希望实现如果该键有多个值,则终止程序。如何检查一个键是否有多个值?
编辑:感谢您澄清我的错误。看起来我的值是列表。在这种情况下,如何检查列表中是否有多个项作为我的值?

你应该更具体地描述你的问题。字典每个键只能有一个值,如果你尝试分配第二个值,第一个值将被覆盖。你的值是列表吗? - undefined
是的,看起来我的值是列表。谢谢你的澄清。我会编辑我的帖子以明确/纠正我的问题。 - undefined
2个回答

2
使用Python中的内置函数len,您可以检查列表的长度。如果值的长度大于1,则列表中有多个值。请注意保留HTML标签。
for key in dictionary: # loop through all the keys
    value = dictionary[key]   # get value for the key
    if len(value) > 1:        
        break                 # stop loop if list length is more than 1

请注意,这假定字典中的每个值都是列表或容器。

1
一个字典键不可能有多个值:要么该键不存在于字典中,因此它没有值,要么存在并且有一个值。该值可以是元组、列表、字典等,其中包含多个值,但它仍然是一个值本身。该值也可以是None,它可以作为无值的标记,但它仍然是一个值。如果您尝试为键分配新值,则新值将取代旧值,正如@Ulisha的评论所说。同样,对于给定的键,最多只能有一个值,尽管可以通过使用容器对象(如元组、列表或字典)来模拟多个值。
如果您正在查看特定项目并想测试它是否为列表,则可以使用。
if isinstance(item, list):

这也会捕获类型从list继承的项目,例如优先队列。如果您想将其扩展到还可以检测元组、字典、集合和大多数其他"容器",您可以使用
if isinstance(item, collections.Container):

当然,您需要导入collections模块。
请记住,即使该项是一个列表,它可能没有、一个或多个项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接