python之深浅拷贝
2018-12-04 07:06:16来源:博客园 阅读 ()
1. 基础数据类型补充
需要把字符串转化为列表:split()
把列表转化成字符串: join()
#join() 使用前面的字符串,对后面的列表进行拼接,拼接的结果是一个字符串 lst = ['yesterday', 'today', 'tomorrow'] s = '_'.join(lst) #字符串 print(s) # yesterday_today_tomorrow #split()根据给的参数进行切割,结果是一个列表 s1 = 'yesterday_today_tomorrow' lst = s1.split('_') #列表 print(lst) # ['yesterday', 'today', 'tomorrow']
列表和字典: 都不能在循环的时候直接删除
把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)
#删除带球的运动 li = ['篮球', '网球','兵乓球', '电子竞技', '台球'] new_lst = [] for item in li: if '球' in item: new_lst.append(item) #将需要删除的元素放入新列表 print(new_lst) #显示需要删除的内容, ['篮球', '网球', '兵乓球', '台球'] for el in new_lst: #遍历新列表, 删除老列表中的内容 li.remove(el) print(li) # 最后输出没有包含球类的运动 ['电子竞技']
fromkeys():Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。语法: dict.fromkeys(seq[, value])
注意: 在面试过程中,在这里有2个坑:
#坑1:返回一个新字典,和原来的关系没有关系 dic = {} dict.fromkeys("天气", "很好") # 会返回一个新的字典{'天': '很好', '气': '很好'} print(dic) # {} #坑2:如果value是可变的 d = dict.fromkeys('天气', []) print(d) # {'天': [], '气': []} d['天'].append('很好') print(d) # {'天': ['很好'], '气': ['很好']}
2.深浅拷贝:
(1) = 没有创建新对象, 只是把内存地址进行了复制
# 从上到下只有一个列表被创建 lst1 = ["yesterday", "today", "tomorrow"] lst2 = lst1 # 并没有产生新对象. 只是一个指向(内存地址)的赋值 print(id(lst1)) # 32035016 print(id(lst2)) # 32035016 lst1.append("July") print(lst1) # ['yesterday', 'today', 'tomorrow', 'July'] print(lst2) # ['yesterday', 'today', 'tomorrow', 'July']
(2.) 浅拷贝
lst1 = ["yesterday", "today", "tomorrow"] lst2 = lst1.copy() # 拷贝, 可以帮我们创建新的对象,和原来长的一模一样, 浅拷贝,只拷贝第一层内容 print(id(lst1)) # 35508424 print(id(lst2)) # 35433736 lst1.append("July") print(lst1) # ['yesterday', 'today', 'tomorrow', 'July'] print(lst2) # ['yesterday', 'today', 'tomorrow']
(3)深拷贝
lst1 = ["yesterday", "today", "tomorrow",['year', 'month','day']] lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式 print(id(lst1)) # 36298952 print(id(lst2)) # 36063624 print(lst1) # ['yesterday', 'today', 'tomorrow', ['year', 'month', 'day']] print(lst2) # ['yesterday', 'today', 'tomorrow', ['year', 'month', 'day']] lst1[3].append("July") print(lst1) # ['yesterday', 'today', 'tomorrow', ['year', 'month', 'day', 'July']] print(lst2) # ['yesterday', 'today', 'tomorrow', ['year', 'month', 'day']]
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash