python--基础数据类型的补充与深浅copy
Posted 截击机1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--基础数据类型的补充与深浅copy相关的知识,希望对你有一定的参考价值。
一 . join的用法
lst =[‘吴彦祖‘,‘谢霆锋‘,‘刘德华‘] s = ‘_‘.join(lst) print(s) # 吴彦祖_谢霆锋_刘德华 # join() "*".join("吴彦祖") # 吴*彦*祖 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串 split() 切割. 切割的结果是列表
二 . 对正在循环的列表或者字典的删除方法
列表和字典: 都不能在循环的时候直接删除
把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)
# 列表 lst = [‘篮球‘,‘足球‘,‘乒乓球‘,‘网球‘,‘电子竞技‘] lst_new = [] for el in lst: if ‘球‘ in el: lst_new.append(el) # 把要删除的添加到新的列表里 print(lst_new) # [‘篮球‘, ‘足球‘, ‘乒乓球‘, ‘网球‘] for i in lst_new: lst.remove(i) # 删除旧的列表 print(lst) # [‘电子竞技‘] 打印旧列表 # 字典 dic = {"张无忌":"乾坤大挪移", "周芷若":"哭", "赵敏":"卖萌"} # 把要删除的key保存在一个新列表中 # 循环这个列表.删除字典中的key:value lst = [] for k in dic: lst.append(k) # 循环列表 # 删除字典中的内容 for el in lst: dic.pop(el) print(dic)
三 . 注意fromkeys()的用法
# 坑: 大坑, 神坑 # fromkeys() 帮我们创建字典用的 # 把第一个参数进行迭代. 拿到每一项作为key和后面的value组合成字典 d = dict.fromkeys("张无忌", "赵敏") # 创建字典 print(d) # {‘张‘: ‘赵敏‘, ‘无‘: ‘赵敏‘, ‘忌‘: ‘赵敏‘} # 坑1: 返回新字典. 和原来的字典没有关系 dic = {} d = dic.fromkeys("风扇哥", "很困") print(dic) # {} print(d) # {‘风‘: ‘很困‘, ‘扇‘: ‘很困‘, ‘哥‘: ‘很困‘}
# 坑2: 如果value是可变的数据类型, # 那么其中一个key对应的value执行的更改操作. 其他的也跟着变 d = dict.fromkeys("胡辣汤", []) print(d) # {‘胡‘: [], ‘辣‘: [], ‘汤‘: []} d[‘胡‘].append("河南特色") print(d) # {‘胡‘: [‘河南特色‘], ‘辣‘: [‘河南特色‘], ‘汤‘: [‘河南特色‘]}
四 . 深浅copy
# = 没有创建新对象, 只是把内存地址进行了复制 # 浅拷贝 lst.copy() 只拷贝第一层. # 深拷贝 import copy copy.deepcopy() 会把对象内部的所有内容进行拷贝
浅copy
lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]] lst2 = lst1.copy() # 浅拷贝. 只拷贝第一层内容 print(lst1) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘]] print(lst2) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘]] lst1[4].append("葫芦娃") print(lst1) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘, ‘葫芦娃‘]] print(lst2) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘, ‘葫芦娃‘]]
深copy
# 引入一个模块 import copy lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]] lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式 print(lst1) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘]] print(lst2) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘]] lst1[4].append("葫芦娃") print(lst1) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘, ‘葫芦娃‘]] print(lst2) # [‘胡辣汤‘, ‘灌汤包‘, ‘油泼面‘, ‘麻辣香锅‘, [‘长白山‘, ‘白洋淀‘, ‘黄鹤楼‘]]
以上是关于python--基础数据类型的补充与深浅copy的主要内容,如果未能解决你的问题,请参考以下文章