[BangPypers] Generate Dynamic lists

Dhananjay Nene dhananjay.nene at gmail.com
Mon Nov 7 00:41:47 CET 2011


On Fri, Oct 21, 2011 at 12:10 AM, Asif Jamadar <asif.jamadar at rezayat.net>wrote:

> So I'm trying to generate dynamic choices for  django form. Here i'm usig
> formset concept (CODE is mentioned below)
>
>
>
> Suppose i have list called criteria_list = ['education', 'know how',
> 'managerial', 'interpersonal', ]
>
>
>
> now i need to generate choices as follows
>
>
>
> list1 = [('education', 1), ('education', 2), ('education', 3),
> (''education' , 4) , ('know how', 1) ('know ho', 2), ('know ho', 3), ('know
> ho', 4)]
>
>
>
> list2 = [('education', 1), ('education', 2), ('education', 3),
> (''education' , 4) , ('managerial', 1) ('managerial', 2), ('managerial',
> 3), ('managerial', 4)]
>
>
>
> list3 = [('education', 1), ('education', 2), ('education', 3),
> (''education' , 4) , ('interpersonal', 1) ('interpersonal', 2),
> ('interpersonal', 3), ('interpersonal', 4)]
>
>
>
> list4 = [('know how', 1), ('know how', 2), ('know how ', 3), ('know how' ,
> 4) , ('managerial', 1) ('managerial', 2), ('managerial', 3), ('managerial',
> 4)]
>
>
>
> list5 = [('know how', 1), ('know how', 2), ('know how ', 3), ('know how' ,
> 4) , ('interpersonal', 1) ('interpersonal', 2), ('interpersonal', 3),
> ('interpersonal', 4)]
>
>
>
> list6= [('managerial', 1), ('managerial', 2), ('managerial ', 3),
> ('managerial' , 4) , ('interpersonal', 1) ('interpersonal', 2),
> ('interpersonal', 3), ('interpersonal', 4)]
>
>
>
>
>
> How can i achive this in python?
>
> You could just create a list of lists using either of the following
approaches

import itertools as it

criteria_list = ['education', 'know how', 'managerial', 'interpersonal', ]

pairs = list((first,second) for (first,second) in
(it.combinations(criteria_list,2)))
lists = list(list((elem,r+1) for elem in pair for r in range(4)) for pair
in pairs)
print lists

lists2 = map(lambda (x,y): map(lambda (r,v): (v,r+1),
it.chain(enumerate(it.repeat(x,4)),enumerate(it.repeat(y,4)))),
it.combinations(criteria_list,2))
print lists2


More information about the BangPypers mailing list