小学生都能学会的python(深浅拷贝)

join() 把列表中的每一项用字符串拼接起来

# lst = ["汪峰", "吴君如", "李嘉欣", "陈慧琳", "关之琳"]

# # 遍历列表. 把列表中的每一项用"_" 做拼接

# s = "_".join(lst) # 把列表转化成字符串

# print(s)

#

#

# s1 = "汪峰_吴君如_李嘉欣_陈慧琳_关之琳"

# ls = s1.split("_") # 把字符串转化成列表

# print(ls)

# print("*".join("马化腾"))

split() 相反

1. 关于删除(重点)

1. 循环迭代过程中不能删除。

2. 创建新列表。 把要删除的内容保存在新列表中。 循环新列表, 删除老列表

3. 字典在循环的时候可以修改, 但不能新增和删除

# lst = ["渣渣辉", "古天绿", "陈小春", "彭佳慧", "郑中基", "胡辣汤"]

# # lst.clear()

# # for el in lst: # for 内部有一个变量来记录当前被循环的位置, 索引.

# # lst.remove(el) # 直接删除. 是删不干净的. 原因是每次删除都设计到元素的移动. 索引在变.

#

# # 先把要删除的内容保存在一个新列表中. 循环这个新列表. 删除老列表

# new_lst = []

# for el in lst:

# new_lst.append(el)

# for el in new_lst:

# lst.remove(el)

# print(lst)

# lst = ["张无忌", "张三丰", "张翠山", "张嘉译", '刘嘉玲', "刘能", '刘老根']

# # 删除姓张的人

# new_lst = []

# for el in lst:

# if el.startswith("张"):

# new_lst.append(el)

#

# for el in new_lst:

# lst.remove(el)

# print(lst)

# dic = {"谢逊": '金毛狮王', "韦一笑":"青翼蝠王","殷天正":"白眉鹰王","金花婆婆":"紫衫龙王"}

# for k in dic:

# dic['谢逊'] = "张无忌他爹"

# print(dic)

dict.fromkeys(k, v)

把key迭代。和value组合成k:v创建新字典, 所有的key共享同一个value

# d = {}

# # fromkeys正常来说应该是类名来访问的.

# dd = d.fromkeys(["胡辣汤","are you 确定?"], "周芷若") # fromkeys是一个类方法.作用是创建新字典

# print(d) # 原字典没有改变

# print(dd) # 新的字典是通过第一个参数的迭代. 和第二个参数组合成key:value创建新字典

# d = dict.fromkeys(["哇哈哈", "爽歪歪"], []) # 所有的key用的都是同一个列表,改变其中一个。 另一个也跟着改变

# d["哇哈哈"].append("张无忌")

# print(d)

#

# print(id(d['哇哈哈']), id(d["爽歪歪"]))

2. set集合(粗略)

特点: 无序, 去重, 哈希

lst = []

list(set(lst)) # 去重复

# dic = {"a":"哇哈哈", "a":"爽歪歪"}

# print(dic) # key 不会重复

# dic[[1,2,3]] = "哇哈哈" # 必须是可哈希的

# s = set() # 空集合

# s = {1,2,3,6,3,4,6,4, [4,5,6]} # 不重复, 必须是可哈希的

# print(s)

# set其实就是不存value的字典. 只存key

# 去重复

# lst = [1,2,3,4,4,4,4,5,5,6,7,7,7]

# s = set(lst)

# lst = list(s)

# print(lst)

s = {"赵本山", "范伟", "小沈阳", "高秀敏", "宋小宝"}

# s.add("赵铁柱")

# s.add("李小花")

# s.add("王尼玛")

# s.add("张全蛋")

# print(s)

#

# s.update(("刘伟", '张伟', "张三丰")) # 迭代更新

# item = s.pop()

s.remove("小沈阳")

print(s)

# print(item)

# for el in s:

# print(el)

3. 深浅拷贝(难点)

1. 赋值。 不会产生新对象。 和拷贝没关系

2. 浅拷贝。 只会复制自身。 会创建对象

2. 深拷贝。 把内部所有的内容都进行拷贝。

# lst1 = ["太白","日天","哪吒","银王","金王"]

# lst2 = lst1

# lst1.append("女神")

# print(id(lst1))

# print(id(lst2))

# lst1 = ["太白","日天","哪吒","银王","金王"]

# # lst2 = lst1[:] # 创建了新列表

# lst2 = lst1.copy() # 会创建新对象, 创建对象的速度会很快.

# lst1.append("女神")

# print(lst1)

# print(lst2)

# lst1 = ["太白","日天",["盖浇饭", "锅包肉", "吱吱冒油的猪蹄子"],"哪吒","银王","金王"]

# lst2 = lst1.copy() # 会创建新对象, 创建对象的速度会很快.

# # lst1[2].append("油泼扯面")

# print(id(lst1[2]), id(lst2[2]))

# 导入拷贝模块

# import copy

# lst1 = ["太白","日天",["盖浇饭", "锅包肉", "吱吱冒油的猪蹄子"],"哪吒","银王","金王"]

# lst2 = copy.deepcopy(lst1)

# print(id(lst1[2]), id(lst2[2]))

# 赋值没有创建新对象。多个变量共享同一个对象

# 浅拷贝。 会创建新对象。 新的对象中里面的内容不会被拷贝

# 深拷贝。 创建一个一摸一样的完全新的对象。 这个对象延伸出来的内容也会跟着复制一份

a = [1, 2]

a[1] = a

print(a[1])

python小学生能学嘛_小学生都能学会的python(深浅拷贝)相关推荐

  1. python是人都能学会_人人都能学会的python编程教程15:高级特性2

    生成器 如果你想要一百万个数,而这些数里只有一百个数是你经常要用的,剩下的都几乎不怎么会用到,那么如果直接把这一百万个数全部放在list中是不明智的因为这会浪费较多存储空间,生成器就是为了解决这个问题 ...

  2. python网易云收费_小白都能学会的Python爬虫网易云音乐

    配置基础 python Selenium Chrome浏览器(其它的也可以,需要进行相应的修改) 分析 如果爬取过网易云的网站的小伙伴都应该知道网易云是有反爬取机制的,POST时需要对一些信息的参数进 ...

  3. python可以这样学豆瓣_豆瓣程序员如何利用Python开发出这么成功的社区?

    image 豆瓣网对互联网用户来说是知名的Web 2.0社区,但对开发者而言,更重要的是一个应用Python打造的非常成功的Web 2.0站点.豆瓣网已经达到了300万注册用户,另外还有千万级的非注册 ...

  4. 人人都能学会的python编程教程(基础篇)完整版

    人人都能学会的python编程教程1:第一行代码 人人都能学会的python编程教程2:数据类型和变量 人人都能学会的python编程教程3:字符串和编码 人人都能学会的python编程教程4:关系运 ...

  5. python小学生课本剧_小学生都能学会的python(小数据池)

    小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...

  6. python小学生课本剧_小学生都能学会的python(生成器)

    小学生都能学会的python(生成器) 1. 生成器 生成器的本质就是迭代器. 生成器由生成器函数来创建或者通过生成器表达式来创建 # def func(): # lst = [] # for i i ...

  7. 小学生python-小学生都能学会的python(函数)

    小学生都能学会的python(函数) 神马是函数 函数: 对功能或者动作的封装 函数的定义 def 函数名(形参列表): 函数体(return) ret = 函数名(实参列表) 函数的返回值 retu ...

  8. 小学生在家自学python_小学生都能学会的python(函数)

    小学生都能学会的python(函数) 神马是函数 函数: 对功能或者动作的封装 函数的定义 def 函数名(形参列表): 函数体(return) ret = 函数名(实参列表) 函数的返回值 retu ...

  9. 小学生都能学会的python(闭包和迭代器)

    小学生都能学会的python(闭包和迭代器) 1. 函数名第一类对象 函数名其实就是变量名 1). 可以像变量一样互相赋值. 2). 可以作为函数的参数,进行传递 3). 可以作为返回值返回 4). ...

最新文章

  1. C/MFC如何获得应用程序当前路径(整理)
  2. 【MATLAB】基本绘图 ( 图形设置 | 坐标轴开关 | box 开关 | 网格开关 | 坐标轴样式 )
  3. 使用 CORBA 和 Java IDL
  4. 数据库(概念、语法、DBMS、SQL语言:创建数据库、表格,添加、修改、删除数据记录)...
  5. Chrome 控制台不完全指南
  6. 字体怎么安装到电脑上_文章还在使用电脑上的固定字体?这款字体软件超好用...
  7. 字符ascii码值转换_没想到 Unicode 字符还能这样玩?
  8. ICCV 2019 | 港大提出视频显著物体检测算法MGA,大幅提升分割精度
  9. 设计模式(二)--单例模式
  10. 基于junit4的关于个人所得税计算的等价类与边界值_测试用例的设计方法--边界值分析方法...
  11. matconvnet 在 win7 64 位下的安装
  12. 用android手机测量身高,教你如何使用小米手机测量自己的身高!
  13. 电商平台日志分析系统(大数据) 上(不完整-版本不对应)
  14. 转载一篇JAVA面试题
  15. Xftp5 安装教程
  16. java获取中文的拼音以及获取中文拼音的首字母
  17. 软件分享|eCognition9.0下载
  18. 机器学习入门的书单(数据挖掘、模式识别等一样)转
  19. 变分推断(variational inference)/variational EM
  20. Java概述-Java技术体系标准:SE、EE、ME

热门文章

  1. 【数据结构与算法】删除线性表中的零元素
  2. flink boardCast--广播变量
  3. 云服务器添加交换分区
  4. RecyclerView之利用ItemDecoration实现万能分割线
  5. logline: 是时候聊一聊前端的日志了
  6. 服务器主板显示ba,为什么我的设计器不能显示,但是可以调通,主板信息读出发生错误...
  7. 怎么制作一个蒙版效果
  8. Excel数据筛选匹配
  9. Android12 HDR相关
  10. Firefox个性化教程