Dennis Lee Bieber wrote:
...  Even this looks strange, since all list will contain is a copy of
string for each occurrence of string in the values of shelve!
Furthermore, the only use for the key is to obtain the value -- the key
is never returned for later use... so...

        def lookup(self, needle):
                cnt = 0
                for hay in self.shelve.values():
                        if hay == needle:       cnt += 1
                return cnt

        No need to go through keys() (presuming the documentation of shelve
is correct, and all dictionary methods work), and the return value is an
integer (if one really needs a list of duplicates, then
        return [needle] * cnt

OK, but you could do better:

    def lookup(self, needle):
        return self.shelve.values().count(needle)

or:
    def lookup(self, needle):
        return self.shelve.values().count(needle) * [needle]

depending on the needed result (until values starts returning an
iterator).

--Scott David Daniels
scott.dani...@acm.org

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

Reply via email to