我想弄清楚为什么有些陈述需要和RETURN而其他陈述不需要?像下面一样,我写了这个并且l1.append(val)不需要返回但是例如l1 [val]呢?
它只取决于变量吗?
L = [1,3,5,7,9,11, 2]
print 'Original List =', L
def change_list(l1, val, decision):
if decision == 'append':
return l1[val]
elif decision == 'ret':
l1.append(val)
elif decision == 'instance':
return l1.count(val)
elif decision == 'sort':
l1.sort()
return l1
res=change_list(L, 2, 'append')
print 'Output =', res
但是,如果我将其更改为以下(删除返回),它会中断!如果某些条件需要重新开始工作,有些情况不会发生吗?:
L = [1,3,5,7,9,11,2]
print 'Original List =', L
def change_list(l1, val, decision):
if decision == 'append':
l1[val]
elif decision == 'ret':
l1.append(val)
elif decision == 'instance':
return l1.count(val)
elif decision == 'sort':
l1.sort()
return l1
res=change_list(L, 2, 'append')
print 'Output =', res
答案 0 :(得分:0)
原因是l1.append(val)
影响原始对象。同样,调用.append(val)
会转到您传递给change_list
函数的数组,并将其传递给原来的L
数组。 l1[val]
仅在原始L
询问值的位置。所以必须返回