python - Get index of recently appended item -


is there straightforward way index of item appended list? need keep track of last added item.

i came 2 possible solutions:

# workaround 1 # last added 1 @ 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 @ index 0 know index of last added >> li = ['a', 'b', 'c',] >> li.insert(0, 'd') >> last_item = li[0] 

is there trick index of appended item?

if there's not, of above use , why? different workaround suggest?

li[-1] last item in list, , hence 1 appended end:

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

if need index, not item, len(li) - 1 fine, , efficient (since len(li) computed in constant time - see below)


in source of cpython, len lists mapped function list_length in objects/listobject.c:

static py_ssize_t list_length(pylistobject *a) {     return py_size(a); } 

py_size macro accessing size attribute of python objects, defined in include/object.h:

#define py_size(ob)     (((pyvarobject*)(ob))->ob_size) 

hence, len(lst) single pointer dereference.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -