字典键为集合时,能否通过集合内元素直接获取对应值?
问题解答
不能通过my_dict["foo"]获取值1,必须使用完整的元组键("foo", "bar")才能访问对应的value。
原因很简单:字典的键匹配是精确匹配——你定义的键是元组类型的("foo", "bar"),而"foo"是单独的字符串,两者是完全不同的对象,字典根本找不到这个键,直接调用my_dict["foo"]会抛出KeyError。
举个实际的例子:
- 正确访问方式:
my_dict = { ("foo", "bar") : 1 } print(my_dict[("foo", "bar")]) # 输出 1 - 如果想通过单个"foo"或"bar"就能访问到值,你需要调整字典结构,比如:
# 方案1:将两个字符串分别作为键 my_dict = {"foo": 1, "bar": 1} print(my_dict["foo"]) # 输出 1 # 方案2:嵌套字典 my_dict = {"foo": {"bar": 1}} print(my_dict["foo"]["bar"]) # 输出 1
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

