
def make_contact_book(ldata):
    contactbook = {}
    for data in ldata:
        name, phone = data
        contactbook[name] = phone
    return contactbook

def make_contact_book2(ldata):
    # alternative solution
    return dict(ldata)

        
def count_prefix(contactbook, prefix):
    n = 0
    longp = len(prefix)
    for name in contactbook:
        if contactbook[name][:longp] == prefix:
            n = n + 1
    return n

def count_prefix2(contactbook, prefix):
    # alternative solution using the string method startswith
    n = 0
    for name in contactbook:
        if contactbook[name].startswith(prefix):
            n = n + 1
    return n



def have_prefix(contactbook, prefix):
    longp = len(prefix)
    for name in contactbook:
        if contactbook[name][:longp] == prefix:
            return True
    return False


def names_prefix(contactbook, prefix):
    lnames = []
    longp = len(prefix)
    for name in contactbook:
        if contactbook[name][:longp] == prefix:
            lnames.append(name)
    lnames.sort()
    return lnames


def make_contact_book_reps(ldata):
    contactbook = {}
    for name, phone in ldata:
        if name in contactbook:
            contactbook[name].append(phone)
        else:
            contactbook[name] = [phone]
    return contactbook
