On Feb 22, 11:20 am, rh0dium <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I have a simple list to which I want to append another tuple if
> element 0 is not found anywhere in the list.
>
> element =  ('/smsc/chp/aztec/padlib/5VT.Cat',
>   '/smsc/chp/aztec/padlib',
>   '5VT.Cat', (33060))
>
> element1 =  ('/smsc/chp/aztec/padlib/5VT.Cat2',
>   '/smsc/chp/aztec/padlib',
>   '5VT.Cat2', (33060))
>
> a =  [ ('/smsc/chp/aztec/padlib/5VT.Cat',
>   '/smsc/chp/aztec/padlib',
>   '5VT.Cat', (33060)),
>  ('/smsc/chp/aztec/padlib/padlib.TopCat%',
>   '/smsc/chp/aztec/padlib',
>   'padlib.TopCat%', (33204)),
>  ('/smsc/chp/aztec/padlib/Regulators.Cat%',
>   '/smsc/chp/aztec/padlib',
>   'Regulators.Cat%', (33204))]
>
> So my code would look something like this.
>
> found = False
> for item in a:
>   if item[0] == element[0]
>     found = True
>     break
> if not found:
>   a.append(element)
>
> But this is just ugly - Is there a simpler way to interate over all
> items in a without using a found flag?
>
> Thanks
Well, that's what I get for typing before thinking...

If the remaining items in each element tuple are the same for any
given element[0], then just use a set.

aset = set(a)
for element in list_of_new_element_tuples:
  aset.add(element)

-- Paul
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to