我想知道Python如何遍历字典中的值。我知道如何在代码中执行此操作,我已阅读的所有答案都仅说明了如何执行此操作。 我想了解python如何找到值,因为我认为字典值与键相关联。字典项目是否也具有索引值或其他内容? 感谢您提前回答或参考相关来源:)
我已经Google搜索,堆栈溢出并阅读。
编辑:我对Python3.7如何实现这一目标很感兴趣
答案 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源代码,因此我的解释可能有点过头,或者过于简化。