2017-04-12 91 views
2

我想使用列表中的元素填充表格的前N行。 現在,我使用這個(它填補了前5行每列的,直到用完根據列表元素)和它的工作原理:從列表中填充表格

l=list(range(1,20)) 

col=0 
row=0 

for x in l: 
    button=QPushButton() 
    layout.addWidget(button,row,col) 
    row+=1 
    if row%5==0: 
     col+=1 
     row=0 

的例子是PyQt的,但是那是無關緊要的。 問題是怎麼做呢沒有啓動之初的2個變量:欄和行 for循環,這是十分可怕的,當我從閱讀123141241個計算器帖子到目前爲止理解,它不是「pythonic」。謝謝!

+0

要做'l = list(range(1,20))',然後只遍歷'l' - 這不是Pythonic。這也浪費了計算機的資源。 – ForceBru

+0

我使用了l = list ...作爲例子。在現實生活中,我有一個存儲在json文件中的列表,並在程序啓動時讀取。 – Mike

回答

3
for x in range(1,20): 
    row = x%5 
    col = x // 5 
    button=QPushButton() 
    layout.addWidget(button,row,col) 
+1

或簡單地說:'col = x // 5'。 – ForceBru

+0

謝謝@ForceBru :) –

+0

就像一個魅力!基本的數學,thx,有一個很好的! – Mike