深浅copy
不可变对象,深浅copy效果一样
可变对象,深浅copy还是有区别的
浅copy
字典、列表、集合结果都一样
list1 = [1, 2, 3] list2 = list(list1) print(list2) print("list1==list2 ?",list1==list2) print("list1 is list2 ?",list1 is list2)
[1, 2, 3] list1==list2 ? True list1 is list2 ? False
浅copy就是值一样,但是内存地址不同,因为其为新变量重新分配了一块内存,和原来不同。
列表还可以通过切片操作符来完成。
list1 = [1, 2, 3] list2 = list1[:] print(list2) print("list1 == list2 ?",list1 == list2) print("list1 is list2 ?",list1 is list2)
list1 = [1, 2, 3] list2 = copy.copy(list1) print(list2) print("list1 == list2 ?",list1 == list2) print("list1 is list2 ?",list1 is list2)
以上三种方式结果都一样。
字符串与元组同理。
str1 = 'operation' str2 = str1[:] print(str2) print("str1 == str2 ?",str1 == str2) print("str1 is str2 ?",str1 is str2) operation str1 == str2 ? True str1 is str2 ? True
import copy a = [1, [2, 3]] b = copy.deepcopy(a) c = copy.copy(a) a[1].append(4) print(f"原始列表a:{a}") # [1, [2, 3, 4]] print(f"深拷贝出来的列表b:{b}") # [1, [2, 3]] print(f"浅拷贝出来的列表c:{c}") # [1, [2, 3, 4]]
pip install 模块名 # 不跟版本号,默认装的是最新版本
pip install django
pip install 模块名==版本号
pip install django == 1.1
pip install openpyxl==2.1.4
pip list
另一个方式可以用pycharm安装
换源:
把下载的路径切换到国内
"""
豆瓣:http://pypi.douban.com/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
华为云:https://repo.huaweicloud.com/repository/pypi/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
中科大:https://pypi.mirrors.ustc.edu.cn/simple/
"""
如何换源
方式1:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple # 临时换源
永久换源
# 你自己搜索windows下如何永久换源
方式2:
pycharm中换源