# 给定一个整数数组 A。定义 B[i]=A[0]*…*A[i-1]*A[i+1]*…*A[n-1]
# 即 B[i]为剔除 A[i]元素之后所有数组元素之积,计算数组 B 的时候请不要使用除
# 法,输出数组 B
A=eval(input())
sum=1
B=[]
for i in range(len(A)):
temp=A
temp.pop(i)
for j in temp:
sum*=j
B.append(sum)
sum=1
print(B)
这里会显示IndexError: pop index out of range
A=eval(input())
sum=1
B=[]
for i in range(len(A)):
temp=A[:]
temp.pop(i)
for j in temp:
sum*=j
B.append(sum)
sum=1
print(B)
temp的赋值方式不同 显示结果不同
pop不是把A中的值删除了吗 这两种赋值方式有什么地方不同啊
temp=A[:] 会拷贝一份A列表,temp操作不会改变原始列表A,而temp=A,只是将指针指向了A列表地址,temp操作会改变原始列表A。