A challenge in the beginner book "Automate the boring stuff":

    #! Python3
    
    # Table printer
    # Takes a list of lists of strings and displays in right-justified table
    # assumption is inner lists contain same number items
    # each inner list must be printed as a column
    
    
    the_list = [["a", "bbbbbbbbb", "tttt"],
                ["d", "eeee", "ggggggggggg"],
                ["g", "hhh", "kkkkkkkkkkkkkkkk"]]
    
    def print_table(a_list):
        rows = len(the_list[0])
        columns = len(the_list)
        column_widths = [0 for i in range(columns)]
        # find longest string in each inner lists(or column)
        for i in range(len(column_widths)):
            longest = 0
            for item in a_list[i]:
                if len(item) > longest:
                    longest = len(item)
            column_widths[i] = longest
    
        # store strings in list
        print_row = ["" for i in range(rows)]
        # iterate over lists to produce strings with correct formatting
        for a in range(rows):
            for i in range(columns):
                print_row[a] = print_row[a] + a_list[i][a].rjust(column_widths[i]
                                                                 + 4)
        for item in print_row:
            print(item)
            
    print_table(the_list)


Ok?