2017-02-13 7 views
1

私は約1年半の間オンとオフをコーディングしていますが、まだPythonでグリッドがどのように機能するかは分かりません。複数の変数でグリッドを設定する

私の問題は、母集団モデルを表示するためにグリッドを作成する必要があることです。だから私はあなたのグリッドにあるすべての行のために変わるさまざまな変数で私のグリッドを設定する必要があります:

私はこれについてどのようになるでしょうか?

答えて

1

本当に必要なものを達成するためにグリッドの概念は必要ありません。ある世代から次の世代に人口を伝播するには、単にgeneratorが必要です。次に、PythonのFormat Specification Mini-Languageを使用して、サンプル出力と一致するテーブルの値を出力できます。

def propagate(num_generations, population_start = None): 
    if population_start is None: 
     population = [10, 10, 10, 30] 
    else: 
     population = population_start 
    for gen in range(num_generations): 
     yield population 
     population = [population[1]*2, population[0], population[1]] 
     population.append(sum(population)) 

def print_propagation(num_generations, population_start = None): 
    print('GENERATION\tJUVENILES\tADULTS\tSENILES\t\tTOTAL') 
    for gen, pops in enumerate(propagate(num_generations, population_start)): 
     print('{:^10}\t{:^8}\t{:^6}\t{:^7}\t\t{:^5}'.format(gen, *pops)) 

あなたはそうのような上記の機能を使用することができます。

>>> list(propagate(6)) 
[[10, 10, 10, 30], 
[20, 10, 10, 40], 
[20, 20, 10, 50], 
[40, 20, 20, 80], 
[40, 40, 20, 100], 
[80, 40, 40, 160]] 

>>> print_propagation(6) 
GENERATION  JUVENILES  ADULTS SENILES   TOTAL 
    0    10    10  10    30 
    1    20    10  10    40 
    2    20    20  10    50 
    3    40    20  20    80 
    4    40    40  20    100 
    5    80    40  40    160 
+0

はどうもありがとうございました!! 「{:^ 10} \ t {:^ 8} \ t {:^ 6} \ t {:^ 7} \ t \ t {:^}は、 5} - そうですか? –

+0

Pythonフォーマット仕様のミニ言語のドキュメント(上のリンク)を参照してください。中括弧の各セット( '{}')には '.format'メソッド呼び出しからのアンパックされた引数が含まれ、'^10'文字列は各値が文字列のそのフィールド内で中央揃えになることを示します。 – Billy

関連する問題