Python 根据列表生成字符串矩阵
我想根据我掌握的数据生成一个矩阵: [0,1]、[1,0]、[0,2]、[1,1]、[2,0]、[0,3]、[1,2]、[2,1]、[3,0]] 我想做的是,如果方括号内的和等于1,产生一个字符串变量y_n,其中n是满足该条件的列表的计数器, 如果总和大于1,则为yxn,其中n计算生成的字符串数。 因此,对于我的数据,它应该产生:Python 根据列表生成字符串矩阵,python,Python,我想根据我掌握的数据生成一个矩阵: [0,1]、[1,0]、[0,2]、[1,1]、[2,0]、[0,3]、[1,2]、[2,1]、[3,0]] 我想做的是,如果方括号内的和等于1,产生一个字符串变量y_n,其中n是满足该条件的列表的计数器, 如果总和大于1,则为yxn,其中n计算生成的字符串数。 因此,对于我的数据,它应该产生: y_1 y_2 yx1 yx2 最多 因此,我最好的尝试是: if len(gcounter) != 0: hg = len(gcounter[0]) els
y_1
y_2
yx1
yx2
最多
因此,我最好的尝试是:
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中填充任何东西我不完全确定我是否理解您在做什么,但我认为此生成器可以满足您的要求:
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
那么这个类
Matrix
是从哪里来的呢?那是从Sympy来的。我明天会试试你的解决方案@Blckknght非常感谢。
y_1
y_2
yx1
yx2
yx3
yx4
yx5
yx6
yx7