以下代码在当前状态下无法运行。然而,如果我将sum_vec.extend( vec1[i] + vec2[i] )
更改为sum_vec.append( vec1[i] + vec2[i] )
,它就可以正确运行。我了解append和extend的基本区别,但我不理解为什么如果我使用extend代码就无法工作。
def addVectors(v1, v2):
vec1 = list(v1)
vec2 = list(v2)
sum_vec = []
vec1_len = len(vec1)
vec2_len = len(vec2)
min_len = min( vec1_len, vec2_len )
# adding up elements pointwise
if vec1_len == 0 and vec2_len == 0:
return sum_vec
else:
for i in xrange(0, min_len):
sum_vec.extend( vec1[i] + vec2[i] )
# in case one vector is longer than the other
if vec1_len != vec2_len:
if vec1_len > vec2_len:
sum_vec.extend( vec1[min_len : vec1_len] )
else:
sum_vec.extend( vec2[min_len : vec2_len] )
print sum_vec
return sum_vec
v1 = [1,3,5]
v2 = [2,4,6,8,10]
addVectors(v1,v2)
sum_vec
版本之间的差异吗? "不起作用" 到底是什么意思 - 错误?意外输出? - jonrsharpe