Python - разбиение списка на известное количество списков с числовым именем - PullRequest
0 голосов
/ 20 сентября 2011

Я работаю с Python 2.5.1.У меня есть список ('coll') с 122 значениями.Я хочу разделить его на 15 списков, где первый список получит первые девять значений (coll [0-8]) и будет называться 'coll_1', второй список будет называться 'coll_2' и будет иметь значения 9-17 и так далее ...

как мне это сделать?

РЕДАКТИРОВАТЬ: значения в списке являются STRING, а не числами.

Ответы [ 3 ]

3 голосов
/ 20 сентября 2011

Это просто напрашивается на неприятности.Почему бы просто не создать список этих списков?

colls = [coll[9*i:9*(i+1)] for i in range(15)]

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

0 голосов
/ 20 сентября 2011
for i in range(len(coll)/9):
    exec 'coll_'+str(i+1)+'='+str(coll[i*9:(i+1)*9])

, но использование exec представляет большую угрозу безопасности, если содержимое coll поступает из пользовательского ввода.

0 голосов
/ 20 сентября 2011

Используйте locals, чтобы получить словарь локальных переменных текущей области, которыми вы можете затем манипулировать.

coll = range(100,222)
for i in range(15):
    locals()['coll_' + str(i+1)] = coll[9*i:(9*i)+8]

Обратите внимание, что вы просчитались; coll_14 не заполнено, а coll_15 пусто

...