2017-08-26 11 views
0

どうやってこの長いコードプロセスを1回実行するのではなく3回試行することができますか?このプロセスを繰り返して3回

import numpy 
import math 
import random 
members=4 
n_groups =4 
participants=list(range(1,members+1))*n_groups 
#print participants 
random.shuffle(participants) 

with open('myfile1.txt','w') as tf: 
    for i in range(n_groups): 
     group = participants[i*members:(i+1)*members] 
     for participant in group: 
      tf.write(str(participant)+' ') 
     tf.write('\n') 

with open('myfile1.txt','r') as tf: 
    g = [list(map(int, line.split())) for line in tf.readlines()] 
    print(g) 


my_groups =g 

def get_rating(group): 
    return len(set(group)) 



for each_grp in my_groups: 
    print(get_rating(each_grp)) 

通常結果は次のようになります。私はそれが(例えば3回繰り返す)のようなものを与えるので、これは時代の全体のプロセスの数nを繰り返すように得ることができる方法

[[2, 4, 1, 3], [3, 1, 2, 1], [3, 3, 4, 4], [2, 4, 1, 2]] 
4 
3 
2 
3 

[[3, 1, 2, 3], [4, 2, 1, 1], [2, 3, 1, 4], [4, 4, 3, 2]] 
3 
3 
4 
3 
[[3, 1, 4, 1], [4, 3, 3, 4], [2, 2, 2, 2], [4, 1, 1, 3]] 
3 
2 
1 
3 
[[3, 1, 3, 3], [4, 4, 4, 2], [1, 1, 2, 3], [2, 4, 1, 2]] 
2 
2 
3 
3 

コードを3回だけコピーできましたが、別の方法があるかどうか疑問に思っていましたか?

+0

は、forループで繰り返したいコードを置くhttps://wiki.python.orgを/ moin/ForLoop – inarilo

+0

私はそれをどこに置くかわからない、すべてを繰り返すしたい – Xenon

答えて

1

ちょうどループを使用して、それにすべて入れ:

import numpy 
import math 
import random 
for i in range(3): 
    # everything is in, see the indentation 
    members=4 
    n_groups =4 
    participants=list(range(1,members+1))*n_groups 
    #print participants 
    random.shuffle(participants) 

    with open('myfile1.txt','w') as tf: 
     for i in range(n_groups): 
      group = participants[i*members:(i+1)*members] 
      for participant in group: 
       tf.write(str(participant)+' ') 
      tf.write('\n') 

    with open('myfile1.txt','r') as tf: 
     g = [list(map(int, line.split())) for line in tf.readlines()] 
     print(g) 


    my_groups =g 

    def get_rating(group): 
     return len(set(group)) 

    for each_grp in my_groups: 
     print(get_rating(each_grp)) 

出力:

[[3, 4, 2, 1], [3, 2, 2, 1], [1, 3, 4, 4], [3, 2, 1, 4]] 
4 
3 
3 
4 
[[3, 2, 1, 3], [2, 2, 3, 1], [4, 3, 4, 4], [1, 4, 1, 2]] 
3 
3 
2 
3 
[[3, 4, 3, 4], [1, 2, 3, 2], [2, 1, 2, 1], [3, 4, 4, 1]] 
2 
3 
2 
3 
+0

パーフェクト!今すぐ正しくマークされます! – Xenon

関連する問題