beginner, idiomatic python
bambam
david at asdf.asdf
Fri Aug 24 00:51:23 EDT 2007
Wos! Several different thoughts:
An object using yield to return only the relevant pages, one at a time.
Pop to remove the items from the list.
A dictionary to map between the strings and the integers.
The dictionary was particularly unexpected. Eventually, I
plan to change the string ports to device names. On the other
hand, it looks like the only reason I have port numbers is
to use as an index in things like this.
After examining your suggestion, I realised that another thing
I am interested in could be generalised: I want the complement
of the set of ports in pages, given a universal set in tempList.
Ignoring the break condition for the moment, and my problem
with int(port)/str(port), would you have offered a different solution
if I had asked for the relative complement of a small set?
a= ['a','b','c']
b= ['b']
c= a-b #set theoretic difference, a\b, a.~b, ['a','c']
Steve.
"Scott David Daniels" <daniels at dsl-only.net> wrote in message
news:13cr00ujte4qs09 at corp.supernews.com...
> 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