2016-05-03 2 views
-1

У меня есть ниже сценарийDisplay (Печать) с колоннами Python

import itertools 
import random 

print "a" 
print "\n" 
def weighted_random(weights): 
    number = random.random() * sum(weights.values()) 
    for k,v in weights.iteritems(): 
     if number < v: 
      break 
     number -= v 
    return k 
weights = {'1': 48, 
      '0': 52} 
    for i in itertools.count(5): 
    print weighted_random(weights) 

print "b" 
print "\n" 
def weighted_random(weights): 
    number = random.random() * sum(weights.values()) 
    for k,v in weights.iteritems(): 
     if number < v: 
      break 
     number -= v 
    return k 
weights = {'1': 53, 
      '0': 50} 
for i in itertools.count(5): 
    print weighted_random(weights) 

Я вижу результат как

a 
1 
0 
1 
1 
0 

b 
1 
0 
0 
1 
1 

Но я хочу сделать это на что-то подобное. Я знаю, что я мог бы назначить a и b во что-то, а затем использовать их, чтобы отображать их в двух столбцах, но пока я не мог этого достичь. Нужна помощь!

a b 
1 0 
0 0 
0 1 
0 1 
1 0 
+0

Вы, вероятно, следует работать со структурой данных, которая находится в форме таблицы, чтобы начать с, например, в dataframe (http://pandas.pydata.org/pandas-docs/stable/dsintro.html #dataframe) – DeepSpace

+0

Почему вы определяете одну и ту же функцию 'weighted_random' * дважды *? –

+0

Я действительно не знаю ... Я добавлял функции и вещи в книгу. Я начинающий! Новое для питона и кодирования. –

ответ

0

Во-первых, не определяйте то же самое weighted_random функция дважды.

Затем вы можете вызвать функцию и распечатать ее результат в одном цикле и, следовательно, в двух параллельных столбцах.

import itertools 
import random 

def weighted_random(weights): 
    number = random.random() * sum(weights.values()) 
    for k,v in weights.iteritems(): 
     if number < v: 
      break 
     number -= v 
    return k 


weights_a = {'1': 48, 
      '0': 52} 
weights_b = {'1': 53, 
      '0': 50} 

print "a", "b" 

for i in itertools.count(5): 
    print weighted_random(weights_a), weighted_random(weights_a) 
+0

Также я сомневаюсь, что ваша функция ведет себя так, как вы ожидаете, вы должны снова проверить это снова ... –

+0

Большое спасибо! Да, я очень начинающий Python, и я знаю, что многое можно изменить. –

Смежные вопросы