我正在使用 Python 3.5.2 ,我想创建一个用户友好的程序,在某些列中输出一系列数字。
#User input
start = 0
until = 50
number_of_columns = 4
#Programmer
#create list of numbers
list_of_stuff = [str(x) for x in range(start,until)]
print("-Created "+str(len(list_of_stuff))+" numbers.")
#calculate the number of numbers per column
stuff_per_column = int(len(list_of_stuff) / number_of_columns)
print("-I must add "+str(stuff_per_column)+" numbers on each column.")
#generate different lists with their numbers
generated_lists = list(zip(*[iter(list_of_stuff)]*stuff_per_column))
print("-Columns are now filled with their numbers.")
直到一切都很好,但在这里我被卡住了:
#print lists together as columns
for x,y,z in zip(generated_lists[0],generated_lists[1],generated_lists[2]):
print(x,y,z)
print("-Done!")
我尝试使用该代码并且它执行我想要的操作,因为它涉及硬编码列数。例如,x,y,z将用于3列,但我想设置用户输入的列数,并且不需要每次都对其进行硬编码。
我错过了什么?如何让印刷品了解我有多少列表?
期望的输出: 例如,如果用户在4上设置列数,则输出将为:
1 6 11 16
2 7 12 17
3 8 13 18
4 9 14 19
5 10 15 20
Etc...
答案 0 :(得分:2)
使用:
for t in zip(generated_lists[0],generated_lists[1],generated_lists[2]):
print(' '.join(str(x) for x in t))
或更简洁:
for t in zip(*generated_lists[:3]):
print(' '.join(map(str, t)))
所以你需要改变的是3到你想要的任何数字