2014-02-07 37 views
0

我有程序寫下來。它只是隨機列出寄生蟲和寄主的二進制數字形式的「遺傳密碼」。我想要的是幫助組織輸出。我所要的輸出在列 - 例如:Python:幫助組織列中的輸出

Host  Parasite 
    1  [1,0,0,1]   
    2  [1,0,0,1] 
    3  ...... 
    4  ....... 

,並在另一列寄生蟲隨機數列表旁邊主機

import random 
host_genome_length = 10 
assert host_genome_length >0 
parasite_genome_length = 5 
assert parasite_genome_length>0 
host_initial_population=10 
assert host_initial_population >=1 
parasite_initial_population=2 
assert parasite_initial_population >=0 
parasite_initial_chance_1= 0.1 
assert 0<= parasite_initial_chance_1 <=1 
host_initial_chance_1=0.5 
assert 0<= host_initial_chance_1 <=1 

hosts=[] 
for i in range(host_initial_population): 
    genome= [] 
    for j in range (host_genome_length): 
     if random.random()< host_initial_chance_1: 
      genome.append(1) 
     else: 
      genome.append(0) 
    hosts.append(genome) 
print "hosts:" 
print hosts 

parasites=[] 
for i in range(parasite_initial_population): 
    genome= [] 
    for j in range (parasite_genome_length): 
     if random.random()< parasite_initial_chance_1: 
      genome.append(1) 
     else: 
      genome.append(0) 
    parasites.append(genome) 

for i in range(host_initial_population-parasite_initial_population): 
    parasites.append(None) 
print "parasites:" 
print parasites 

回答

1

您可以使用Python的字符串格式化工具這一點。每個支架的:40部分指定字段應該是40個字符寬:

print "{:40} {:40}".format("Host", "Parasite") 
for host, parasite in zip(hosts, parasites): 
    print "{:40} {:40}".format(host, parasite) 

輸出:

Host          Parasite         
[0, 1, 1, 1, 0, 1, 1, 0, 0, 1]   [0, 0, 0, 0, 0]       
[1, 1, 1, 1, 0, 0, 0, 0, 0, 1]   [0, 0, 0, 0, 0]       
[1, 0, 1, 0, 1, 0, 1, 0, 1, 1]   None          
[0, 1, 0, 0, 0, 1, 1, 1, 0, 1]   None          
[0, 0, 0, 0, 0, 0, 1, 0, 1, 1]   None          
[1, 1, 1, 1, 0, 1, 1, 0, 0, 1]   None          
[1, 1, 1, 0, 1, 0, 1, 1, 1, 0]   None          
[1, 0, 0, 1, 1, 1, 0, 0, 0, 1]   None          
[0, 0, 1, 1, 0, 1, 0, 0, 1, 1]   None          
[1, 1, 1, 0, 1, 0, 0, 1, 0, 1]   None 
0

你可以看看在str.format功能。

下面是你可能想到的一些草圖。

print '{:50} {:50}'.format('Host', 'Parasites') 

for i in range(max(len(parasites), len(hosts))): 
    print '{:50} {:50}'.format(str(i+1) + str(hosts[i]), parasites[i]) 

這裏是由片段在你的代碼產生的輸出:

Host            Parasites           
1[1, 0, 0, 1, 0, 1, 1, 1, 1, 1]     [0, 0, 0, 0, 0]         
2[1, 0, 0, 1, 1, 1, 0, 0, 1, 0]     [0, 0, 0, 0, 0]         
3[0, 1, 1, 1, 1, 0, 1, 0, 0, 0]     None            
4[1, 0, 0, 0, 1, 0, 0, 0, 1, 1]     None            
5[0, 1, 0, 1, 0, 1, 0, 0, 1, 0]     None            
6[1, 1, 1, 1, 0, 1, 1, 0, 1, 1]     None            
7[0, 1, 1, 0, 0, 0, 0, 1, 1, 1]     None            
8[0, 0, 1, 0, 0, 1, 0, 0, 1, 1]     None            
9[0, 0, 1, 0, 1, 0, 0, 0, 1, 0]     None            
10[1, 0, 0, 1, 1, 1, 1, 1, 0, 1]     None   

你可能會想美化它多一點。