The following program works and does what I want except for one last
problem I need to handle.   The program reads a txt file of senators and
their associated states and when I input the last name it gives me their
state.  The problem is "Udall".  There are two of them.  The txt file is
read by line and put into a dictionary with the names split.  I need a
process to handle duplicate names.  Preferably one that will always work
even if the txt file was changed/updated.  I don't want the process to
handle the name "Udall" specifically.   For a duplicate name I would like
to tell the user it is not a unique last name and then tell them to enter
first name and then return the state of that senator.

Thanks

An excerpt of txt file...
Arkansas    Mark Pryor (D)    2003    2015
Arkansas    John Boozman (R)    2011    2017
California    Dianne Feinstein (D)    1992    2019
California    Barbara Boxer (D)    1993    2017
Colorado    Mark Udall (D)    2009    2015
Colorado    Michael F. Bennet (D)    2009    2017



def createList(state):

    senateInfo = {}

    info = open( "USSenators.txt", "r" )

    for line in info:

        dataOnLine = line.split( "\t" )
        state = dataOnLine[ 0 ]
        senator = dataOnLine[ 1 ]

        nameSplit = dataOnLine[ 1 ].split(" ")

        if len(nameSplit) == 3:
            lastName = nameSplit[1]


        elif len(nameSplit) == 4:
            lastName = nameSplit[2]


        senateInfo[lastName] = state

    info.close()

    return senateInfo


def test( senator, usSenators ):
    print( usSenators[senator] )


def main():
    usSenators = createList( "USSenators.txt" )
    senator = input("Enter last name of Senator")
    test(senator, usSenators )
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to