У меня есть следующий код:Пытаясь понять, почему вложенный цикл вызывается только первый раз
def get_preds(train,test,x_ranges,y_ranges):
global total_scores
global num_scores
for x_min, x_max in x_ranges:
for y_min, y_max in y_ranges:
...
Когда я запускаю этот метод на Python 2.7, он ведет себя, как ожидалось. Гнездо для циклов запускается за каждый раз, когда выполняется цикл out for.
Когда я загрузил этот же код в движок скриптов Python Kaggle, который работает на Python 3, вложенный цикл запускается только один раз. Для всех других итераций он пропускается.
Вот как метод вызывается:
dataset = pd.read_csv('../input/train.csv',dtype=types,index_col=0)
split_t=math.floor((0.9)*786239)
train = dataset[dataset.time < split_t]
test = dataset[dataset.time >= split_t]
def gen_ranges(size,step):
return zip(np.arange(0,size,step), np.arange(step, size+step, step));
x_ranges = gen_ranges(size,x_step)
y_ranges = gen_ranges(size,y_step)
preds_test_total = get_preds(train,test,x_ranges,y_ranges)
как вы называете эту функцию? –
preds_test_total = get_preds (train, test, x_ranges, y_ranges) вне любого метода. –
как вы называете функцию? в частности, 'yranges' - это список в обоих интерпретаторах, или это список в Python 2 и генератор в Python 3? – gboffi