![]() |
Column Print? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: Column Print? (/thread-25146.html) |
Column Print? - Guga - Mar-21-2020 What should I do to make it look like this? String Methods List Methods Tuple Methods Dict Methods Set Methods title() append() ...... .... ....... replace() extend() ...... ....... ........ ...... .... str_ = "String Methods" list_ = "List Methods" tuple_ = "Tuple Methods" dict_ = "Dict Methods" set_ = "Set Methods" print(f"{str_:<20} {list_:<20} {tuple_:<20} {dict_:<20} {set_:<20}") print() str_list = list() list_list = list() tuple_list = list() dict_list = list() set_list = list() for i in dir(""): if not i.startswith("__"): str_list += [i] for i in dir([]): if not i.startswith("__"): list_list += [i] for i in dir(tuple()): if not i.startswith("__"): tuple_list += [i] for i in dir(dict()): if not i.startswith("__"): dict_list += [i] for i in dir(set()): if not i.startswith("__"): set_list += [i] total_list = [] total_list += [str_list, list_list, tuple_list, dict_list, set_list] #for i in total_list: # print(*i) RE: Column Print? - ibreeden - Mar-22-2020 You should print the lists just like the header. print(f"{str_:<20} {list_:<20} {tuple_:<20} {dict_:<20} {set_:<20}") ... print(f"{str_list[i]:<20} {list_list[i]:<20} {tuple_list[i]:<20} {dict_list[i]:<20} {set_list[i]:<20}")But where does the index "i" come from? You will have to put this second print statement in a loop (for or while) where "i" increments from 0 to the maximum. Try this and let us know what errors you get. RE: Column Print? - Guga - Mar-22-2020 (Mar-22-2020, 09:27 AM)ibreeden Wrote: You should print the lists just like the header. TypeError: list indices must be integers or slices, not list RE: Column Print? - ibreeden - Mar-22-2020 What are list indices? In my example "i" is the list index. So what is de value of i when the error arises? RE: Column Print? - Guga - Mar-22-2020 (Mar-22-2020, 11:33 AM)ibreeden Wrote: What are list indices? In my example "i" is the list index. So what is de value of i when the error arises? first try: for i in range(0, len(total_list)+1): print(f"{str_list[i]:<20} {list_list[i]:<20} {tuple_list[i]:<20} {dict_list[i]:<20} {set_list[i]:<20}")Output: list index out of range (string has "45" methods, but list has "11" methods so this is not working.) Second try: for i in total_list: print(f"{str_list[i]:<20} {list_list[i]:<20} {tuple_list[i]:<20} {dict_list[i]:<20} {set_list[i]:<20}")list indices must be integers or slices, not list (Sorry, i didn't pay attention :) of course list indices must be integers or slices) RE: Column Print? - ibreeden - Mar-22-2020 First you have to get rid of total_list. You can do nothing with it. The number of rows should be equal to the largest list. So get the lengt of each list an determine what the largest is. Say you call that variable: "max_list". Then you can do: for i in range(max_list): print(f"{str_list[i]:<20} {list_list[i]:<20} {tuple_list[i]:<20} {dict_list[i]:<20} {set_list[i]:<20}")But then you say: (Mar-22-2020, 11:48 AM)Guga Wrote: string has "45" methods, but list has "11" methods so this is not working.You are right, so you have to think of something to make it work.
for i in range(max_list): if len(list_list) < i: list_method = list_list[i] else: list_method = "" print(f"{list_method:<20}") |