Python printing list in columns -
this question has answer here:
- how print list more nicely? 14 answers
how can print in python values list in columns?
i sorted them, don't know how print them in 2 ways instance:
list=['apricot','banana','apple','car','coconut','baloon','bubble']
first one:
apricot bubble ... apple car baloon coconut
second way:
apricot apple baloon bubble car coconut
i want align ljust/rjust.
i tried this:
print " ".join(word.ljust(8) word in list)
but displays in first example. don't know if proper way this.
the_list = ['apricot','banana','apple','car','coconut','baloon','bubble'] num_columns = 3 count, item in enumerate(sorted(the_list), 1): print item.ljust(10), if count % num_columns == 0: print
output:
apple apricot baloon banana bubble car coconut
update: here comprehensive solution addresses both examples have given. have created function , have commented code clear understand being done.
def print_sorted_list(data, rows=0, columns=0, ljust=10): """ prints sorted item of list data structure formated using rows , columns parameters """ if not data: return if rows: # column-wise sorting # must know number of rows print on each column # before print next column. since cannot # move cursor backwards (unless using ncurses library) # have know each row upfront # printing rows line line instead # of printing column column lines = {} count, item in enumerate(sorted(data)): lines.setdefault(count % rows, []).append(item) key, value in sorted(lines.items()): item in value: print item.ljust(ljust), print elif columns: # row-wise sorting # need know how many columns should row have # before print next row on next line. count, item in enumerate(sorted(data), 1): print item.ljust(ljust), if count % columns == 0: print else: print sorted(data) # default print behaviour if __name__ == '__main__': the_list = ['apricot','banana','apple','car','coconut','baloon','bubble'] print_sorted_list(the_list) print_sorted_list(the_list, rows=3) print_sorted_list(the_list, columns=3)
Comments
Post a Comment