我正在嘗試完成具有以下問題的練習:
撰寫一個采用兩個向量的演算法,并創建一個包含給定向量的分量且沒有重復元素的向量。示例:
X = (11,20,56,2)
和Y = (132,20,56,21)
->W = (11,20,56,2,132,21)
目前這就是我所擁有的。問題是程式本身由于索引超出范圍錯誤而拒絕運行。
dimA = int(input("Introduce the dimension of A"))
dimB = int(input("Introduce the dimension of B"))
A = [0] * dimA
B = [0] * dimB
y = []
for i in range(dimA):
A[i] = int(input("Introduza elementos do vetor A"))
for i in range(dimB):
B[i] = int(input("Introduza elementos do vetor B"))
print(A)
print(B)
copia = 0
jcopia = 0
for i in range(dimA):
y.append(A[i])
for j in range(dimB):
y.append(B[j])
dimY = len(y)
for i in range(dimY):
for j in range(dimY):
if B[i] == B[j]:
copia = copia 1
jcopia = j
while copia > 0:
y.remove(B[jcopia])
copia = copia - 1
print(y)
uj5u.com熱心網友回復:
完成上述任務的一種更簡潔的方法:
X=[11,20,56,2]
Y=[132,20,56,21]
W=list(set(X Y))
print(W)
輸出:
[2, 132, 11, 20, 21, 56]
uj5u.com熱心網友回復:
在追加到串列之前y
,您可以檢查該值是否已經在串列中y
。使用相同的輸入代碼:
dimA = int(input("Introduce the dimension of A"))
dimB = int(input("Introduce the dimension of B"))
A = [0] * dimA
B = [0] * dimB
y = []
for i in range(dimA):
A[i] = int(input("Introduza elementos do vetor A"))
for i in range(dimB):
B[i] = int(input("Introduza elementos do vetor B"))
print(A)
print(B)
for value in A B:
if value not in y:
y.append(value)
print(y)
uj5u.com熱心網友回復:
如果您需要一種能夠保持秩序并消除冗余(無論它們發生在何處)的解決方案:
X = [11, 20, 56, 2]
Y = [132, 20, 56, 21]
W = []
s = set()
for elt in X Y:
if elt not in s:
s.add(elt)
W.append(elt)
print(W) # => [11, 20, 56, 2, 132, 21]
與掃描正在構建的串列相比,使用 aset
會更節省時間,但空間效率更低。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/468473.html