2024-05-18 23:26:10 发布
网友
我想知道Python是如何循环遍历字典中的值的。我知道如何在代码中实现它,我读过的所有答案都只是解释了如何实现它。 我想了解python是如何找到这些值的,因为我认为dictionary值与键相关联。字典项也有索引值吗? 感谢您提前回答或参考相关来源:)
我在谷歌上搜索过,堆满了,读过。你知道吗
编辑:我对Python3.7如何实现这一点很感兴趣
根据源代码(^{})分配一个n(字典中键/值对的大小)元组列表,对于每个非空值项(第2278行:if (value != NULL)),它被设置在元组列表的相应索引处。 python对象本身基本上是一块内存,它知道每个对象的大小(offset)、值的起始位置(value_ptr)以及键的位置(ep)。因此,当您获得键/值(for k,v in object)时,它基本上会遍历为对象分配的内存中已用完的部分。你知道吗
if (value != NULL)
offset
value_ptr
ep
for k,v in object
顺便说一句,知道PyList\u SET\u ITEM只是一个宏,它通过所需的索引来设置数组中的值:^{}。由于数组只是按顺序存储在内存中的值,index操作符知道将值放在start + (sizeOf(object)*index)的内存位置。你知道吗
start + (sizeOf(object)*index)
免责声明:这是我第一次尝试阅读python源代码,因此我的解释可能有点偏离或者过于简单。你知道吗
根据源代码(^{} )分配一个n(字典中键/值对的大小)元组列表,对于每个非空值项(第2278行:
if (value != NULL)
),它被设置在元组列表的相应索引处。 python对象本身基本上是一块内存,它知道每个对象的大小(offset
)、值的起始位置(value_ptr
)以及键的位置(ep
)。因此,当您获得键/值(for k,v in object
)时,它基本上会遍历为对象分配的内存中已用完的部分。你知道吗顺便说一句,知道PyList\u SET\u ITEM只是一个宏,它通过所需的索引来设置数组中的值:^{} 。由于数组只是按顺序存储在内存中的值,index操作符知道将值放在
start + (sizeOf(object)*index)
的内存位置。你知道吗免责声明:这是我第一次尝试阅读python源代码,因此我的解释可能有点偏离或者过于简单。你知道吗
相关问题 更多 >
编程相关推荐