2014-10-07 83 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)號代碼的下方。