我有一个列表(A)是(x * y)的乘积。我正在尝试创建包含x个元素的y列表。
我需要每x个元素打印一个新行,或者将列表分成包含x个元素的y列表。
我研究了许多类似的线程,但仍然不知道。
谢谢
编辑:解决一些最近的评论 @ b4hand,谢谢你让我知道。我删除了那个。 @ jonrsharpe,这是一个更大的任务的一部分。我需要用输入创建一个特定的形状。我已经设法做了其余的事情,我相信像我描述的那样分裂它会产生我想要的形状。我还没有尝试过任何东西,但我已经阅读了以下主题: - How do you split a list into evenly sized chunks? - http://www.pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python/ - Splitting a list of into N parts of approximately equal length
编辑:我没有成功尝试使用pprint来解决我的问题。
ediit:用户输入x和y的值。
编辑:@joergwork即将结束,但我不想按3计算
答案 0 :(得分:0)
您是否正在寻找以下内容(来自python控制台)?
>>> a = [1,2,3,4,5,6,7,8,9]
>>> x = 3
>>> [ a[1*i::x] for i in range(x) ]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
>>>
>>>
>>> for i in range(x):
... a[1*i::x]
...
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
编辑:像这样?
>>> for i in range(x):
... a[x*i:x*i+x]
...
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
编辑:做了一个你的工作实例:像那样?
x = int(input("Please enter a x: "))
y = int(input("Please enter a y: "))
product = x * y
numbers = []
for i in range(1, product + 1):
numbers.append(i)
num_cols, num_rows = x, y
for row in range(num_rows):
print('row {}: values: {}'.format(row, numbers[num_cols * row:num_cols * row + num_cols]))
答案 1 :(得分:0)
#ask for x
z = int(input("Please enter a x: "))
#ask for y
y = int(input("Please enter a y: "))
product = x * y
alist = []
for i in range(1,product+1):
nums.append(i)
a = alist
x = z
for i in range(x):
print(a[x*i:x*i+x])
当我运行此代码时,我似乎得到(# - y)的数字" []"在代码下面。