On Jan 21, 12:34 pm, TP <tribulati...@paralleles.invalid> wrote:
> alex23 wrote:
> > Try not to use 'dict' or the name of any of the other built-in types
>
> So my list is rather:
> l=[{"title":"to", "color":"blue", "value":2}
> {"title":"ti", "color":"red", "value":"coucou"}]
>
> So, I will rather use your solution:
>
> for index, record in enumerate(l):
>     if record['title'] == 'ti':
>         to_add_in_another_list = l.pop(index)
> another_list.append(to_add_in_another_list )
>
If you have duplicates this will not work. You will have to do
something like this instead:

>>> o=[]
>>> i=0
>>> ln=len(l)
>>> while i<ln:
        if l[i]['title']=='ti':
                o.append(l.pop(i))
                ln-=1
        else:
                i+=1



If you don't have duplicates you can extract the one and exit early:

>>> for index, record in enumerate(l):
        if record['title'] == 'ti':
                to_add_in_another_list = l.pop(index)
                break

I don't know if these are more pythonic, they should be more efficient
for longer lists though.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to