Searching Sets (Lottery Results)

MrPink tdsimpson at gmail.com
Mon Feb 8 16:45:24 EST 2016


This is a continuation of my pursuit to learn Python. I have been tinkering with this for a number of years and I am back at it again.  I am stuck and need some guidance.

This is related to other posts that I have made in the past.  
For example: Searching for Lottery drawing list of ticket match: https://groups.google.com/forum/#!topic/comp.lang.python/sHLPrfmY3q4

I have a text file with the results of lottery drawing like so:
Draw Date   WB1 WB2 WB3 WB4 WB5 PB  PP
01/02/2016  42  15  06  05  29  10  2
12/30/2015  12  61  54  38  36  22  3
12/26/2015  65  40  44  59  27  20  2
12/23/2015  67  16  63  38  55  25  4
12/19/2015  30  68  59  41  28  10  2
12/16/2015  09  42  10  55  32  06  2
12/12/2015  62  02  30  19  14  22  2
12/09/2015  16  46  10  56  07  01  2
12/05/2015  47  33  68  27  13  13  2
12/02/2015  14  18  19  64  32  09  2
11/28/2015  47  02  66  67  06  02  3
11/25/2015  53  16  69  58  29  21  2
11/21/2015  37  57  47  50  52  21  3
11/18/2015  40  17  46  69  41  06  2
11/14/2015  66  37  22  14  45  05  3
11/11/2015  26  04  32  55  64  18  3
11/07/2015  50  53  07  16  25  15  2
11/04/2015  12  02  17  20  65  17  4
10/31/2015  09  47  20  25  68  07  2
10/28/2015  56  62  54  63  04  10  2
10/24/2015  20  31  56  64  60  02  3
10/21/2015  57  32  30  42  56  11  4

I load the lottery drawings into memory for searching with the following code although, it is incomplete.  I am stuck and need some guidance.

The set datatype seems to be the best for searching, but how best can I implement it?

And I want the results to highlight the numbers that were matched.  For example, if the white balls in the drawing are: 
"42 15 06 05 29"

AND the numbers on the lottery ticket are: 
"06 15 32 42 56"

THEN the display might look like: 
"06* 15* 32 42* 56" 

WHERE * signifies a match.

###############################
from datetime import datetime

class Powerball(object):
    """Summary of class here.

    Longer class information. . .Longer
    Attributes:
        fileName: File name to load drawing from.
    """
    # class Constants
    _DATE_FORMAT = '%m/%d/%Y'
    # class variables
    fileName = 'pb.txt'

    # class initialization
    def __init__(self, pFileName):
        """Return a Powerball Object with a set of winning drawings.
        :param pFileName:
        """
        self.fileName = pFileName

    # Open file and load drawing data sets.
    def readFileData(self):
        """File to open and load data from. """
        f = open(self.fileName, 'r')
        # read the whole file into a list of lines.
        lines = f.readlines()
        f.close()
        # For each line in the list of lines. . .
        for line in lines[1:50]:
            # split the string on whitespace into a list of strings
            fields = line.split()
            d = datetime.strptime(fields[0], self._DATE_FORMAT).date()
            # Use list comprehension to create a frozenset.
            wb = frozenset(int(num_str) for num_str in fields[1:6])
            pb = int(fields[6])
            t = tuple([wb, pb, d])
            # Store t into a data structure for searching later. . .
            # Not sure of best way to do this. . . 


p = Powerball("pb.txt")
p.readFileData()
#################################


More information about the Python-list mailing list