list=['你好','欢迎']
print(list.append('大家'))
list=['你好','欢迎']
list.append('大家')
print(list)
在使用函数时,要注意函数的定义
list.append 是没有返回值的,他的操作是在原有的 list 上进行操作的,你输出 list.append 并不会输出 list ,而是输出 list.append 方法的返回值
如同 list.pop 一样,pop 具有返回值,返回的是被删除的元素,print(list.pop()) ,输出的是被删除元素,而不是 list
所以在使用函数、方法时,要注意他的操作方式,是引用原数据直接操作,还是需要从新赋值的方式,有没有返回值,返回值到底是什么
不知道你这个问题是否已经解决, 如果还没有解决的话:apppend将返回一个和原切片完全相同并且尾部追加新元素的新切片。
这个新切片与原切片不同的底层数组。当append发生在原数组地址空间无法扩展时,将重新开辟一块内存,把当前的元素全部拷贝过去,再在尾部追加新元素。而这一切都是append内部发生的,所以无法确定新切片是否和老切片共享底层数组。
因此我们在append以后需要把新切片赋值给原来的切片,这样就比较安全。
sl3 := append(sl1, 4, 5) // 危险,sl3和sl1不确定是否互相影响
sl1 := append(sl1, 4, 5) // OK,还是sl1上操作