<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># lec10_medal_data.py
class Medal:
    """Medal info:  winner, sport, event, type"""
    def __init__(self, winner, sport, event, type):
        self.winner = winner
        self.sport = sport
        self.event = event
        self.type = type

    def __str__(self):
        return "("+self.winner+" ! "+self.sport+" ! "+self.event+" ! "+ self.type+")"

    def __repr__(self):
        return self.__str__()


medals = [
    Medal("COCHRAN-SIEGLE Ryan", "Alpine Skiing", "Men's Super-G", "Silver"),
    Medal("HUMPHRIES Kaillie", "Bobsleigh", "Women's Monobob", "Gold"),
    Medal("MEYERS TAYLOR Elana", "Bobsleigh", "Women's Monobob", "Silver"),
    Medal("United States of America", "Bobsleigh", "2-woman", "Bronze"),
    Medal("DIGGINS Jessie", "Cross-Country Skiing", "Women's 30km Mass Start Free", "Silver"),
    Medal("DIGGINS Jessie", "Cross-Country Skiing", "Women's Sprint Free", "Bronze"),
    Medal("CHEN Nathan", "Figure Skating", "Men Single Skating", "Gold"),
    Medal("United States of America", "Figure Skating", "Team Event", "Silver"),
    Medal("HUBBELL Madison / DONOHUE Zachary", "Figure Skating", "Ice Dance", "Bronze"),
    Medal("HALL Alexander", "Freestyle Skiing", "Men's Freeski Slopestyle", "Gold"),
    Medal("United States of America", "Freestyle Skiing", "Mixed Team Aerials", "Gold"),
    Medal("STEVENSON Colby", "Freestyle Skiing", "Men's Freeski Big Air", "Silver"),
    Medal("WISE David", "Freestyle Skiing", "Men's Freeski Halfpipe", "Silver"),
    Medal("GOEPPER Nicholas", "Freestyle Skiing", "Men's Freeski Slopestyle", "Silver"),
    Medal("KAUF Jaelin", "Freestyle Skiing", "Women's Moguls", "Silver"),
    Medal("FERREIRA Alex", "Freestyle Skiing", "Men's Freeski Halfpipe", "Bronze"),
    Medal("NICK Megan", "Freestyle Skiing", "Women's Aerials", "Bronze"),
    Medal("United States", "Ice Hockey", "Women", "Silver"),
    Medal("JACOBELLIS Lindsey", "Snowboard", "Women's Snowboard Cross", "Gold"),
    Medal("KIM Chloe", "Snowboard", "Women's Snowboard Halfpipe", "Gold"),
    Medal("United States of America 1", "Snowboard", "Mixed Team Snowboard Cross", "Gold"),
    Medal("MARINO Julia", "Snowboard", "Women's Snowboard Slopestyle", "Silver"),
    Medal("JACKSON Erin", "Speed Skating", "Women's 500m", "Gold"),
    Medal("United States of America", "Speed Skating", "Men's Team Pursuit", "Bronze"),
    Medal("BOWE Brittany", "Speed Skating", "Women's 1000m", "Bronze")
]

golds = [
    medals[1],
    medals[6],
    medals[9],
    medals[10],
    medals[18],
    medals[19],
    medals[20],
    medals[22]
]

silvers = [
    medals[0],
    medals[2],
    medals[4],
    medals[7],
    medals[11],
    medals[12],
    medals[13],
    medals[14],
    medals[17],
    medals[21]
]

bronzes = [
    medals[3],
    medals[5],
    medals[8],
    medals[15],
    medals[16],
    medals[23],
    medals[24]
]

teams = \
    ['albania','american-samoa','andorra','argentina','armenia','australia',
    'austria','azerbaijan','belarus','belgium','bolivia','bosnia-herzegovina',
    'brazil','bulgaria','canada','chile','chinese-taipei','colombia','croatia',
    'cyprus','czech-republic','timor-leste','denmark','ecuador','eritrea','estonia',
    'finland','france','georgia','germany','ghana','great-britain','greece','haiti',
    'hong-kong-china','hungary','iceland','india','ireland','islamic-rep-of-iran',
    'israel','italy','jamaica','japan','kazakhstan','kosovo','kyrgyzstan','latvia',
    'lebanon','liechtenstein','lithuania','luxembourg','madagascar','malaysia',
    'malta','mexico','monaco','mongolia','montenegro','morocco','netherlands',
    'new-zealand','nigeria','north-macedonia','norway','pakistan','china','peru',
    'philippines','poland','portugal','puerto-rico','republic-of-korea',
    'rep-of-moldova','roc','romania','san-marino','saudi-arabia','serbia',
    'slovakia','slovenia','spain','sweden','switzerland','thailand',
    'trinidad-and-tobago','turkey','ukraine','united-states','uzbekistan',
    'virgin-islands-us']

def last(some_list):  # don't use `list` as a variable/parameter name!
    end = len(some_list)-1
    return some_list[end]



medal_pg = 'https://olympics.com/beijing-2022/olympic-games/en/results/all-sports/medal-standings.htm'
if __name__ == '__main__':

    print('How many medals for the US? ' + str(len(medals)))
    print()

    print("Checking medal counts against " + medal_pg)
    print("True or False?  Length of medals is sum of lengths of sublists")
    print(str(len(medals) == len(golds) + len(silvers) + len(bronzes)))

    print("What is the medal at position 0 in medals?")
    print(medals[0])
    print()

    print("What is the first gold medal?")
    print(golds[0])
    print()

    print("What is the last gold medal?")
    print(golds[len(golds)-1])
    print()

    print("Creating a small list `sample` using list slicing")
    sample = medals[:3]
    print(sample)
    print("length of sample: "+ str(len(sample)))
    print()

    print("Create an imposter medal")
    imposter = Medal("LEE, Lillian", "Teaching", "Subbing for Prof Bracy", "Bronze")
    bronzes.append(imposter)
    medals = medals + [imposter]  # can concatenate lists
    print("Last entries of bronzes are: " + str(bronzes[4:]))

    print("Changing the name of imposter is reflected in its containing lists")
    imposter.winner = "LEE, Prof."
    print("imposter name is now: " + imposter.winner)
    print("last medal: " + str(last(medals)))
    print("last bronze: " + str(last(bronzes)))
</pre></body></html>