beginner, idiomatic python

Scott David Daniels daniels at dsl-only.net
Thu Aug 23 08:40:22 EDT 2007


bambam wrote:
> Would someone like to suggest a replacement for this? It works ok,
> but it doesn't look like any of the other code:
> 
> tempList = ['1','2','3','4','5','6','7','8']
> sampleList=[]
> for port in tempList:
>     pagefound = False
>     for i in range(self.parent.GetPageCount()):
>         page=self.parent.GetPage(i)
>         if hasattr(page, "port"):
>             if page.port == int(port):
>                 pagefound=True
>         if not pagefound:
>             sampleList.append(port)
> 
> Thanks!
> 
> 
Look at good questions.  This is a _very_ underspecified question.

One stab at mindreading:

     def ported_pages(self):
         for i in range(self.parent.GetPageCount()):
             if hasattr(page, 'port'):
                 yield page

     ...
         tempList = ['1','2','3','4','5','6','7','8']
         missing = dict((int(v), v) for v in tempList)
         for page in self.ported_pages():
             if page.port in missing:
                 missing.pop(page.port)
                 if not missing:
                     break
         sampleList = missing.values()
     ...

-Scott David Daniels



More information about the Python-list mailing list