In [1]:
# First of all, here's the list...

arr = '''FOMIN,SAQIF
PAPERNO,XINNI
WILLIAMS,SKAI
GINDIS,MOZEN
MORSE,ANDREA
LOW,ARIEL
ZAMAN,ALEXANDRIA
HUMAIDEE,AFIA
SHAN,NATALIA
SHAHID,EDWARD
TEDESCO,CARINA
HLINKA,ZAMIN
STACY,JIA
SHIN,JIAYI
ZHAN,MALIKA
LETON,HEPZIBAH
KUCHINAD,VIANA
LEUSSING,REGINA
CHEN,EBTESHAM
AUDHY,ELAINE
WIELAARD,ANI
MARUF,VIOLETA
CUNNINGHAM,TANISHA
TAMEEM,AQIB
BISTA,ANGELA
KHALIQUE,RAMEZ
LOU,CYRUS
PERAZZO,KRIPAMOYE
FRID,JOSEPH
HAQUE,ANNE
FANTOZZI,ALVI
LANDA,ISABELLE
VALLEJO,VICKY
XHETANI,ZAINAB
LAKUSTA,MANVEER
FIROOZAN,OLIVIER
KARIM,SOPHIA
SCHWARZ,ESTEAK
KROP-SIEGMUND,TAASEEN
MUI,YE-HEE
SHAPIRO,MIM
GUTKOVICH,JAY
CHIU,HUMAIRA
BAHUTSKI,KAIDEN
FUKUOKA,RIFAH
CASTLE,SHAFKATH
VAYSBURD,KAZI
ANDREWS,MICHA
CAOTHIEN,DREW
RABINOVICH,DANIEL
OR,LUCINDA
KABWA,WEIBIN
MEDINA,SAKURA
ANANT,TERREN
RUZZIER,GITAE
SY,IQRA
PULAWSKA,ROXY
REN,YUVAL
BACCHUS,OLUWATOBI
JEA,FLORENCE
BAE,IRENE
HUGHES,LEON
COWAN,INARA
SHEN,KEN
ILYANOK,CHENHUI
COLLINS,SELENA
MIKHALEVSKY,MADELYN
MAI,NAFISA
GRAEBER,SAYAN
BOIS,ALIND
TSAHALIS,MANOLEE
GALAI,QINA
ROHAN,ALFAYED
KRONMAN,MORRIS
KYI,GRETA
TAWHID,INFINITY
KRANICH,WAI
KOLENOVIC,DORIN
LEUNG,XINQING
BELL,SAARAH
TYLO,MISA
TASNEEM,DAVALYNN
AZIZ,MELODY
SOIEFER,KANJUDA
FUENTES,MENDY
SAI,CALISTA
BACON,ANIKAH
ALLEN,KHUJISTA
JIA,KEIRA
LEVINE,TAMARA
EISEN,PULINDU
ASHIKIN,FATIHA
LAMANY,AIDEN
SCHWARTZ,ATHENA
RUSSO,FARIHAH
KATARI,SUBYETA
ZOARDAR,MISHEL
HAMEED,YVETTE
HARVEY,CALVIN
SELECTOR,DANTE'''
In [15]:
# Let's split this into lines (or names)
Names = arr.split('\n')

# Problem 1: how many names?
print('Problem 1: how many names?', len(Names))

# Problem 2: How long is the longest first or last name, and what is the (or one of the) longest first or last names
# for firstname, which =  1. for lastnames which = 0:
def longest_first_or_last(which):
    max_name = ''
    max_length = 0
    
    # now go through the the names
    for aname in Names:
        name = aname.split(',')[which]
        if len(name) > max_length:
            max_length = len(name)
            max_name = name
    return [max_name,max_length]

print('Problem 2: ',longest_first_or_last(1))

# Problem 3: What is the list of second-longest first names?
def second_longest_firstnames():
    # get the length of longest first name (so we can avoid it)
    longest = longest_first_or_last(1)[1]
    
    max2_first = []
    max2_length = 0
    for aname in Names:
        first = aname.split(',')[1]
        length = len(first)
        # avoid any firstname whose length is equal to the longest firstname 
        if length != longest and length >= max2_length:
            if length == max2_length:
                max2_first += [first]  # another of the longest, just add it to the growing list
            else:
                max2_length = length   # a new maximum found
                max2_first = [first]
    return max2_first

print("Problem 3: ",second_longest_firstnames())
    
# Problem 4: How long is the longest last name?
def longest_last_name():
    return longest_first_or_last(0)[1]

print('Problem 4: ',longest_last_name())

# Challenge problem 5: second-longest last name (but viewing each lastname only once)
def second_longest_last_name():
    longest = 1
    second_longest = 0
    
    for aname in Names:
        lastname = aname.split(',')[0]
        length = len(lastname)
        if length > longest:
            second_longest = longest
            longest = length
        elif second_longest < length < longest:
            second_longest = length
    
    return second_longest

print('Problem 5: ', second_longest_last_name())
Problem 1: how many names? 100
Problem 2:  ['ALEXANDRIA', 10]
Problem 3:  ['KRIPAMOYE', 'OLUWATOBI']
Problem 4:  13
Problem 5:  11