2014-10-07 197 views
-1

我有一个列表(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

在python中,导入模块是一种常规做法。即使标准库只在导入时才可以访问。有了这个限制,你可能会得到的答案只是重新发明轮子,而不是重用现有功能的更多Pythonic答案。 – b4hand 2014-10-07 20:05:49

+0

那么你试过了什么,它有什么问题?你读过哪些“线索”;他们教你什么,还有什么你还不明白? – jonrsharpe 2014-10-07 20:09:27

+0

谢谢你的回复,我已经在OP中解决了他们。 – JohnKraz 2014-10-07 20:18:27

回答

0

来计算您是否正在寻找类似如下(从蟒蛇控制台)?

>>> 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])) 
+0

编辑:这是非常接近它,但我想它看起来像[1,2,3] [3,4,5] [6,7,9]。我不想在每个元素之间跳过三个数字。 – JohnKraz 2014-10-07 20:56:10

+0

没错,就是这样。非常感谢Joergwork – JohnKraz 2014-10-07 21:25:22

+0

所以我设法在我的代码中实现了这个结构,但是我仍然遇到了问题。我会再看一下,然后回复。谢谢 – JohnKraz 2014-10-07 21:36:22

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]) 

当我运行这段代码我似乎得到 - 的 “[]”(X×Y)号代码的下方。