从循环连接字符串

时间:2018-12-19 12:42:36

标签: python string loops concatenation

Python初学者在这里!我的目标是实现这种形状的数组或一组字符串:

Session::flash("test","ABC");

return redirect()->route('customer.details');

我创建了以下循环来创建像这样的字符串部分:

layer[1] = level[1].x1
layer[2] = level[1].x2
layer[3] = level[1].T
layer[4] = level[2].x1
layer[5] = level[2].x2
layer[6] = level[2].T
layer[7] = level[3].x1
...

现在我要问自己如何将所有这些部分连接在一起,以便可以打印出所描述的字符串集。我试图创建一个数组,附加值,创建一个numpy数组,将其转置并堆叠三个数组部分,但是由于我得到了错误的数组,因此无法解决问题:

layers = 36
levels = 12
states = 12

for count_layers in range(1,37):
    print("layer["+str(count_layers)+"]=level[")

for count_levels in range(1,13):
    print(""+str(count_levels)+"].")
    print(""+str(count_levels)+"].")
    print(""+str(count_levels)+"].")

for states in range(1,13):
    print("x1")
    print("x2")
    print("T")

是否有一种优雅的方法?

1 个答案:

答案 0 :(得分:3)

您可以通过广告素材字符串格式和modulo / floordiv操作来做到这一点:

for k in range(0,90):
    print("layer[{}] = level[{}].{}".format(k+1, (k//3)+1, ["x1","x2","T"][k%3]) )

floordiv用于级别编号,以模的形式索引到提供["x1","x2","T"]之一的“后缀列表”中。

输出:

layer[1] = level[1].x1
layer[2] = level[1].x2
layer[3] = level[1].T
layer[4] = level[2].x1
layer[5] = level[2].x2
layer[6] = level[2].T
...snipp...
layer[88] = level[30].x1
layer[89] = level[30].x2
layer[90] = level[30].T

Python 3.6+字符串插值:

print(f"layer[{k+1}] = level[{k//3}].{['x1','x2','T'][k%3]}")