2017-04-12 19 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はしているが、それは無関係です。 質問です:COLとforループ外行、それは本当に醜いと私は、これまで123141241件のStackOverflowの記事を読むことから理解されるようだ:私は初めに、これらの2つの変数を開始ずにそれを行うのですか、それは "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

関連する問題