所以我試圖創建一個與 [A] 大小相同的陣列。我想要的是一個 for 回圈,它檢查陣列中第 i 個元素的第一個值是否為 == 0,但是它一直告訴我陣列的真值中有多個元素,而不應該存在因為我索引了陣列中第 i 個元素的第一個值。這是我的代碼:
n = 4
N = [i for i in range(1,n 1)]
V = [0] N
K = N [5]
M = [0,1]
A = np.array([(i,j,k) for i in V for j in K for k in M if i!=j])
C=[]
for i in A:
if A[i][0]==0:
C.append([0.7])
elif abs(A[i][0]-A[i][1])<=1:
C.append([1])
else:
C.append([0])
uj5u.com熱心網友回復:
當你遍歷你的 for 回圈時,我已經是 A 中的每個串列,你可以通過以下方式檢查:
for i in A:
print(i)
回傳:
[0 1 0]
[0 1 1]
[0 2 0]
[0 2 1]...
所以A[i][0]每次呼叫都會給出一個陣列而不是一個整數,所以比較A[i][0] == 0是不可能的。要解決您的問題,請執行以下操作,這將更改您的 i 以獲取 A 中每個元素的索引:
for i in range(len(A)):
if A[i][0]==0:
C.append([0.7])
elif abs(A[i][0]-A[i][1])<=1:
C.append([1])
else:
C.append([0])
或者將所有實體更改A[i][x]為i[x],并以這種方式使用 A 的每個串列元素,如下所示:
for i in A:
if i[0]==0:
C.append([0.7])
elif abs(i[0]-i[1])<=1:
C.append([1])
else:
C.append([0])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/361980.html
