Python如何设法遍历字典中的值?

时间:2019-05-13 16:48:20

标签: python loops dictionary python-3.7 dictionary-comprehension

我想知道Python如何遍历字典中的值。我知道如何在代码中执行此操作,我已阅读的所有答案都仅说明了如何执行此操作。 我想了解python如何找到值,因为我认为字典值与键相关联。字典项目是否也具有索引值或其他内容? 感谢您提前回答或参考相关来源:)

我已经Google搜索,堆栈溢出并阅读。

编辑:我对Python3.7如何实现这一目标很感兴趣

1 个答案:

答案 0 :(得分:0)

根据源代码(dict_items(PyDictObject *mp)),分配了一个n(字典中键/值对的大小#)元组的列表,并为每个非空值项(第2278行:{{1 }}),它在元组列表的相应索引处设置。 python对象本身基本上是一块内存,它知道每个对象的大小(if (value != NULL)),值的起始位置(offset)和键的位置(value_ptr) 。因此,当您获得键/值(ep)时,它基本上会遍历对象分配的内存的已用完部分。

顺便说一句,知道PyList_SET_ITEM只是一个宏,可以通过其所需的索引#define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item\[i\] = (v))在数组中设置值,这可能会有所帮助。由于数组只是顺序存储在内存中的值,因此索引运算符知道将值放置在for k,v in object的内存位置。

免责声明:这是我第一次尝试阅读python源代码,因此我的解释可能有点过头,或者过于简化。