gpt4 book ai didi

python - 获取最近附加项目的索引

转载 作者:太空狗 更新时间:2023-10-29 17:55:36 26 4
gpt4 key购买 nike

有没有一种直接的方法来获取我刚刚附加到列表中的项目的索引?我需要跟踪最后添加的项目。

我想到了两种可能的解决方案:

# Workaround 1
# The last added is the one at index len(li) - 1
>> li = ['a', 'b', 'c',]
>> li.append('d')
>> last_index = len(li) - 1
>> last_item = li[len(li) - 1]

# Workaround 2
# Use of insert at index 0 so I know index of last added
>> li = ['a', 'b', 'c',]
>> li.insert(0, 'd')
>> last_item = li[0]

是否有获取附加项索引的技巧?

如果没有,您会使用以上哪一个?为什么?您有什么不同的解决方法建议吗?

最佳答案

li[-1] 是列表中的最后一项,因此也是最近附加到其末尾的一项:

>>> li = [1, 2, 3]
>>> li.append(4)
>>> li[-1]
4

如果您需要索引,而不是项目,那么 len(li) - 1 就可以了,而且非常高效(因为 len(li) 是在恒定时间 - 见下文)


在CPython的源代码中,列表的len映射到Objects/listobject.c中的函数list_length:

static Py_ssize_t
list_length(PyListObject *a)
{
return Py_SIZE(a);
}

Py_SIZE 只是一个宏,用于访问所有 Python 对象的大小属性,定义在 Include/object.h 中:

#define Py_SIZE(ob)     (((PyVarObject*)(ob))->ob_size)

因此,len(lst) 本质上是一个单指针解引用。

关于python - 获取最近附加项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6545426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com