-1
我試圖與蟒蛇的命令的文本,這是目前編碼:蟒蛇:如何檢查對象的值是否被包括在陣列
L=open('lp0.dat','w')
L.write('Maximize')
for i in range(ndof):
L.write(' '+str(-grad_f[i]))
L.write('\n')
for i in range(ndof):
if i==fix_index[i]:
L.write('s.t 0 =')
for j in range(ndof):
if j==i:
L.write(' 1')
else:
L.write(' 0')
L.write('\n')
elif i%2==0:
L.write('s.t 0.1 >=')
for j in range(ndof):
if j==i:
L.write(' 1')
else:
L.write(' 0')
L.write('\n')
L.write('s.t -0.1 <=')
for j in range(ndof):
if j==i:
L.write(' 1')
else:
L.write(' 0')
L.write('\n')
else:
L.write('s.t 0.15 >=')
for j in range(ndof):
if j==i:
L.write(' 1')
else:
L.write(' 0')
L.write('\n')
L.write('s.t -0.15 <=')
for j in range(ndof):
if j==1:
L.write(' 1')
else:
L.write(' 0')
L.write('\n')
L.close()
它應該寫2在每次迭代中具有不等號的線,但是如果索引i與數組的一個元素(fix_index)相同,它應該只寫一個等號的線。是的,我知道我做了這部分錯誤:
if i==fix_index[i]:
因爲它顯示了Indexerror,自然。該陣列(fix_index)的形狀是這樣的:
fix_index=[0, 1, 2, 3, 4, 5, 28, 29, 30, 31]
所以,我想的是,在迭代時索引i一樣的是這些數字之一,那麼它應該寫與=只有一條線,否則寫兩行與> =和< =。我試圖在迭代中檢查另一個小命令,但代碼變得太亂,甚至沒有意義。所以我需要一種方法來檢查數字是否與數組的元素相同。
所以,你想要的'in'操作? '如果我在fix_index:'?如果不是,請進一步解釋。 – Kevin
@凱文嗯,這很容易操作。謝謝,我可以使用相同的東西來處理任何類型的數組,比如2D或字符串數組嗎? –