2013-05-07 59 views
0

我想产生该数据的基础上的矩阵的列表的基础上,我有:产生串的矩阵

[[0,1],[1,0],[0,2 ],[1,1],[2,0],[0,3],[1,2],[2,1],[3,0]]

我想要做的是if方括号内的和等于1,产生一个字符串变量y_n,其中n是满足该条件的列表的计数器, 和yxn,如果总和大于1,其中n计数产生的字符串的数量。 所以我的数据应该产生:

y_1 
y_2 
yx1 
yx2 

高达

yx7 

所以我的最好的尝试是:

if len(gcounter) != 0: 
    hg = len(gcounter[0]) 
else: 
    hg=1 
    LHS=Matrix(hg,1,lambda i,j:(var('yx%d' %i))) 
print(LHS) 

的数据称为gcounter。

这不是给我一个错误,但它不填充LHS与东西

+0

这个班'Matrix'从哪里来? – 2013-05-07 18:12:02

+0

来自Sympy。我会明天尝试你的解决方案@Blckknght非常感谢。 – user124123 2013-05-07 21:57:55

回答

1

我不完全明白你在做什么,但是我觉得这个发电机你想要做什么:

def gen_y_strings(data): 
    counter_1 = counter_other = 0 
    for item in data: 
     if sum(item) == 1: 
      counter_1 += 1 
      yield "y_{}".format(counter_1) 
     else: 
      counter_other += 1 
      yield "yx{}".format(counter_other) 

您可以像这样运行:

for result in gen_y_strings(gcounter): 
    print(result) 

其中,给出的示例数据,输出你想要的东西:

y_1 
y_2 
yx1 
yx2 
yx3 
yx4 
yx5 
yx6 
yx7