Python - добавление значений в список - PullRequest
0 голосов
/ 23 октября 2019

В приведенном ниже коде каждый x имеет 9 значений y. Я хочу new_gamesplyed = [x, y1, y2, y3, y4, y5, y6, y7, y8, y9]. Но в списке «разница» все 292 значения сохраняются одновременно.

new_gamesplayed = []
difference = []

col_count = df_gamesplayed.shape[1]-1 = 9
l = len(df_gamesplayed) = 292

for x in range(len(df_gamesplayed)):      
    for y in range (1, col_count):
        diff = abs(df_gamesplayed.iloc[x, y] - df_gamesplayed.iloc[x, y + 1])        
        difference.append(diff)
    new_gamesplayed.append([df_gamesplayed.iloc[x, 0], difference])    

1 Ответ

0 голосов
/ 23 октября 2019

Вы используете одну и ту же переменную difference во всем фрагменте кода, поэтому неудивительно, что она хранит все значения, которые были переданы ей append

Если я правильно понимаю, вам нужно "сбросить"msgstr "контейнер между некоторыми операторами в основном цикле. Поэтому я предлагаю повторную инициализацию коллекции сегментов каждый раз при запуске операторов основного цикла. Пример:

for x in range(len(df_gamesplayed)):      
    d_temp = []  # <---------  reset it here ----------
    for y in range (1, col_count):
        diff = abs(df_gamesplayed.iloc[x, y] - df_gamesplayed.iloc[x, y + 1])        
        d_temp.append(diff)
    new_gamesplayed.append([df_gamesplayed.iloc[x, 0], d_temp])
...