Создать 10 списков и назначить каждые 10 значений в один цикл - PullRequest
0 голосов
/ 21 июня 2019

У меня есть DataFrame размером 2 столбца;«ID» и «имя».И 100 строк (ID от 0 до 99).Я хочу создать 10 групп в виде списков и добавить в каждую по 10 идентификаторов.Например,

group0 = (0,10,20,30,40,50,60,70,80,90)

group2 = (2,12,22,32,42,52,62,72,82,92)

...

Есть ли способ сделать это автоматически?Я попробовал это:

var = 1
for i in range (0,10) :
    var = i
    "group{t}".format(t=var) = ()
    for j in range (0,10) :
        "group{k}".format(k=var).append(df.iloc[10*i+j][0]) 

но:

enter image description here

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Вот быстрое решение, которое создает список списков

list_of_lists = []
for i in range(0,10):
    newList = []
    for j in range(0, 10):
        newList.append(i + j*10)
    list_of_lists.append(newList)

list_of_lists [0] = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
list_of_lists [1] = [1, 11, 21, 31, 41, 51, 61, 71, 81, 91]
...

1 голос
/ 21 июня 2019

Чтобы ответить на ваш вопрос, да, это можно сделать автоматически. Поскольку вы не включили полный код в свой вопрос, исходя из моего понимания, он должен выглядеть примерно так:

var =1
group = {} # Declare group object before assigning values
for i in range (0,10) :
    var = i
    group[var] = []  # Replace the brackets
    for j in range (0,10) :
        group[var].append(df.iloc[10*i+j][0])

Причина, по которой вы получаете ошибку, заключается в использовании круглых скобок. Кроме того, нет необходимости добавлять строку формата для использования переменной в качестве индекса, если вы используете группу как объект

...