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的更多相关文章
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...
- 基础数据类型的补充和深浅copy
一:关于str 的操作方法补充 1,s.isspace() 判断字符串是否只由空格组成,是,为True,否则,为False. s = ' ' #只能是以至少一个空格组成的字符串(全空格) prin ...
- 百万年薪python之路 -- 基础数据类型的补充练习
1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...
- Python之路-基础数据类型之列表 元组
列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- 基础数据类型之集合和深浅copy,还有一些数据类型补充
集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...
- Python基础学习Day7 基础数据类型的扩展 集合 深浅copy
一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...
- 07、python的基础-->数据类型、集合、深浅copy
一.数据类型 1.列表 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 del li ...
- python--基础数据类型的补充与深浅copy
一 . join的用法 lst =['吴彦祖','谢霆锋','刘德华'] s = '_'.join(lst) print(s) # 吴彦祖_谢霆锋_刘德华 # join() "*" ...
随机推荐
- chrome-performance页面性能分析使用教程
运行时性能表现(runtime performance)指的是当你的页面在浏览器运行时的性能表现,而不是在下载页面的时候的表现.这篇指南将会告诉你怎么用Chrome DevTools Performa ...
- 【JAVA8】双冒号
现在JDK双冒号是: public class MyTest { public static void printValur(String str){ System.out. ...
- 洛谷P2845-Switching on the Lights 开关灯
Problem 洛谷P2845-Switching on the Lights 开关灯 Accept: 154 Submit: 499Time Limit: 1000 mSec Memor ...
- 文本分类实战(一)—— word2vec预训练词向量
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- Redis主从数据库同步
Redis主从同步原理-SYNC和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采 ...
- ubantu服务器配置ss
阿里云 ubantu16.0(自带pip) 服务端 $ apt-get install python-pip $ pip install shadowsocks $ vim /etc/shadowso ...
- ubuntu 学习
参考博客:http://www.cnblogs.com/resn/p/5800922.html 在Linux 里一切皆文件 / : 根 查看是否安装了中文支持:locale -a 如果有zh_CN.u ...
- [03] 线程同步 synchronized
1.线程同步概述 线程之间有可能共享一些资源,比如内存.文件.数据库等.多个线程同时读写同一份共享资源时,就可能引起冲突,所以引入了线程的"同步"机制. 所谓同步,就是说线程要有先 ...
- JS中AOP的实现和运用
在编写js的时候,我们有时会遇到针对某种场景做处理,比如在方法开始的时候校验参数,执行方法前检查权限,或是删除前给出确认提示等等.这些校验方法.权限检测.确认提示,规则可能都是相同的,在每个方法前去调 ...
- 【C# 复习总结】类、继承和接口
1 类 定义新的数据类型以及这些新的数据类型进行相互操作的方法 定义方式: class Cat { } class Cat:object { } C#中所有的类都是默认由object类派生来的,显示指 ...