Python——函数返回值是copy还是引用

Python中有些函数是直接操作当前对象的,有些函数是操作副本的


操作当前对象的

  • list.sort(), 返回空
  • random.shuffle(my_list), 返回空
  • func(inplace=True), 这里Pandas库中的其他方法几乎均适用

返回copy的

  • 除了numpy的reshape()外目前默认都为
  • sorted(), 内置函数,返回新对象,不论接受什么参数返回的都是列表
  • np.ndarray.reshape() 返回新对象,但是新对象除了shape属性外,数据属性是和原始对象共享的
    • np.ndarray存储着数据和一个shape属性
    • 我们可通过修改shape属性而不是创建新对象来修改当前对象的shape object.shape = 3,4
    • 使用reshape时可以理解为创建了一个新对象,但是共享了数据,两个ndarray对象有相同的数据引用
    • numpy包没有array类,只有ndarray类,array是一个函数,用于构造ndarray,也可以用ndarray函数构建,但是不推荐,测试ndarray函数发现用法很奇怪