Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据列表生成字符串矩阵_Python - Fatal编程技术网

Python 根据列表生成字符串矩阵

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

我想根据我掌握的数据生成一个矩阵:

[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])
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