【问题标题】:Logic behind accessing dictionary values in python在python中访问字典值背后的逻辑
【发布时间】:2021-12-28 12:47:25
【问题描述】:

这里是新手,我找不到合适的解释。

我们有一个简单的字典:

a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}

要遍历并访问我必须调用的这个字典的值

for key in a_dict:
    print(key, '->', a_dict[key])

我说的是

a_dict[key]

具体来说。为什么 python 使用这个约定?这背后的逻辑在哪里?当我想获取字典的值时,我应该将其命名为

a_dict[value] or a_dict[values] etc

相反(逻辑思考)。

谁能解释清楚吗?

编辑:

要明确:为什么 python 使用 a_dict[key] 来访问 dict VALUE 而不是 a_dict[value]。逻辑上。

【问题讨论】:

  • 您的问题不清楚 imo。
  • 究竟有什么不清楚的地方?字典就是它们的本意,所以...?
  • 我不知道你在问什么。 a_dict[value] or a_dict[values] etc 应该是什么?
  • 字典,根据定义,允许您通过键访问值。如果您已经拥有该值,则不需要字典。比如,你知道,为什么我要搜索约翰的电话簿,而不是 555-12-34?

标签: python python-3.x dictionary


【解决方案1】:

根据您的问题,我认为您的意思是为什么 python 不使用索引而不是键来访问字典中的值。

请注意,python 中有 4 个主要的数据容器,每个容器都有其用途。 (还有其他容器,例如 counter 和 ...)

例如,列表和元组的元素可以通过它们的索引访问。

a = [1,2,3,4,5]
print(a[0]) would print 1

但字典正如其名称所示,从一些对象(python 术语中的键)映射到其他一些对象(python 术语中的值)。所以我们会调用键而不是索引,输出就是值。

a = { 'a':1 , 'b':2 }
print(a['a']) would print 1

我希望它能让你更清楚一点。

【讨论】:

    【解决方案2】:

    我认为您对字典的一些术语有误解:

    在您的示例中,您的密钥是 colorfruitpet。 您的值是 blueappledog

    在 python 中,您可以通过调用a_dict[key] 来访问您的值,例如a_dict["color"] 将返回"blue"

    如果 python 使用您建议的 a_dict[value] 方法,您必须在尝试访问它之前知道您的值是什么,例如需要a_dict["blue"] 才能获得"blue",这没什么意义。

    正如 Feras 的回答,尝试阅读更多关于字典如何工作的信息here

    【讨论】:

      【解决方案3】:

      这是因为,python 中的字典映射键和值在内存内部使用哈希函数。

      因此,要获取值,您必须传入 key

      您可以将其视为列表的索引与列表的元素,现在要提取特定元素,您可以使用lst[index];这与字典的工作方式相同;而不是传入索引,你将不得不传入 您在字典中使用的key,例如dict[key]

      另一个比较是字典(带有单词和含义的字典),因为含义映射到单词,现在您当然会搜索word而不是给单词的meaning,直接。

      【讨论】:

        【解决方案4】:

        您正在搜索一个您不知道它是否存在于 dict 中的值,因此 a_dict[key] 是合乎逻辑且正确的

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-18
          • 2021-12-31
          • 2020-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-05
          相关资源
          最近更新 更多