# python_learning **Repository Path**: ig__wxz/python_learning ## Basic Information - **Project Name**: python_learning - **Description**: python学习笔记 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-11-01 - **Last Updated**: 2021-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **问题1** python是传值还是引用: 可变对象,如[dict, list]是引用,可修改原值. 不可变对象,如[数字, str, tuple]是赋值,不可修改原对象,只能重新给对象赋值. 如str1 += '2',其实不是在str1后面加个'2',而是把str1+'2'的字符串重新赋给str1,覆盖掉str1原先的指向. 对于数组list和numpy来说,也有赋值和引用两种方式,如下: ```python list_a = [1,2,3] np_a = np.array([1,2,3]) b1 = list_a # 引用 b2 = np_a # 引用 c1 = list_a[:] # 一维是赋值,二维以上是引用 c2 = np_a[:] # 切片全为引用,多少维都是引用 # 若想规范赋值,请选择copy d1=copy(list_a) # 赋值 d2=copy(list_a) # 赋值 ```