2018.12.4 今日所学

今日只要学习了

一. 基础数据类型的补充

二 ..深浅拷贝

一 . 主要内容:

之前讲的int 跟 str 已经讲过了80%的内容 接下来说剩下的:

1 .join

join与之前的spilt 作用是相反的.  join 是将列表中的数据通过操作变成字符串 . 而split是通过字符串的切割将字符串变成列表 .

具体用法:  如 :li = ["李嘉诚", "麻花藤", "?海峰", "刘嘉玲"]

       li1=‘ _ ‘ .join(li)

      print( li1 )   结果为‘‘李嘉诚_麻花藤_?海峰_刘嘉玲‘‘

由此我们可以看出join是将原来的列表类型变成了一个字符串

对比split :

str = "李嘉诚,麻花藤,?海峰,刘嘉玲"

str1=str.split(" ,")

print(str1)   结果为 [‘李嘉诚‘,‘麻花藤‘,‘?海峰‘,‘刘嘉玲‘]

我们可以看到这里的split是将之前的字符串形式变成了列表的形式

列表:

循环删除列表中的每一个元素.

li = [11, 22, 33, 44]
for e in li:
li.remove(e)
print(li)
结果:
[22, 44]

这里的原因是 for 在循环的过程中 ,会有一个指针记录当前循环的元素是哪一个,一开始这个元素的指向是第0个,然后执行获取, 删除命令.当删除完第一个元素之后,之前第二个元素变成了第一个元素,索引改变了,但是指针指向了第二个元素,刚好错开了. 如果用pop删除系统会报错,只有这样才是可以的.

for el in range(len(li)):

li.pop()  # 这里默认删除的是最后一个   或者是  li.pop[0]  #删除第一个元素

这里我们要讲的办法是用另一个列表记录你要删除的内容 ,然后循环删除原来要删除的列表

如: li = [11, 22, 33, 44]

li1=[]

for el in li:

  li1.append(el)

for e in li1:

  li.remove(e)

print(e)

注意:  由于元素删除后会导致元素的索引改变,容易出现问题,所以不要在循环中直接去单楚楚元素.可以把要删除的元素放到另一个列表中去,通过另一个列表的循环删除原来列表中的元素

dict 中可以通过fromkeys()来创建新的字典:

dic=dict.fromkeys([‘jay‘,‘jj‘],[‘周杰伦‘,‘麻花藤‘])

print(dic)  结果 :{ ‘jay‘ : [‘周杰伦‘,‘麻花藤‘] , ‘ jj ‘: [‘周杰伦‘,‘麻花藤‘] }

关于fromkeys 的两个大坑:

1,必须给前面赋值一个新的字典, 他返回的是新字典,与原字典无关.

dic={}

d=dic.fromkeys(‘张无极‘,[])

print(d)  结果为{‘张‘:[],‘无‘:‘[]‘,‘极‘:[]}

2.如果value是可变的值.

dic={}

d=dic.fromkeys(‘张无极‘,[])

dic[‘张‘]=‘呵呵‘

print(dic) 结果为{‘张‘:[呵呵],‘无‘:‘[呵呵]‘,‘极‘:[呵呵]}

原因: 这里的‘张‘ ‘无‘ ‘极‘用的是同一个[],如果其中一个改变了[]的值,其他的也会改变

二 .深浅拷贝

1 浅拷贝( 只拷贝第一层)  拷贝出来的内容不是之前的原内容,只是创建了一个和之前一样的 (此处可以联想的抄作业)

lst1 = ["金毛狮王", "紫衫龙王", "白眉鹰王", "青翼蝠王"]
   lst2 = lst1
  print(lst1)
  print(lst2)
  lst1.append("杨逍")
  print(lst1)
  print(lst2)
  结果:
  ["金毛狮王", "紫衫龙王", "白眉鹰王", "青翼蝠王" ‘杨逍‘]
  ["金毛狮王", "紫衫龙王", "白眉鹰王", "青翼蝠王", ‘杨逍‘]

2. 深拷贝 对象的所有内容都要复制

from copy

lst2=copy.deepcopy(lst1)

这里的lst2就是深拷贝了lst1 中的所有内容,不会产生一个改变另一个跟着

改变的问题

原文地址:https://www.cnblogs.com/zty1304368100/p/10064626.html

时间: 2024-11-06 09:51:33

2018.12.4 今日所学的相关文章

2018.12.21 今日所学

今日所学 : 1 .类的约束 2 .异常处理 try except raise 3. MD5加密 4. 日记处理(不要记,留一份,侧重点再用) 1 .类的约束 1) 写一个父类,父类中的某个方法要抛出一个异常 NotlmplemenredError(重点) class Base: #创建一个父类约束子类 def login(self): raise NotImplementedeError('系统报错,请重新输入') # 扔一个错误给子类,约束他们按照指定的内容输入 class yonghu(B

2018.12.5 今日所学

今日主要学习了 1. 初识文件操作2. 只读(r, rb)3. 只写(w, wb)4. 追加(a, ab)5. r+读写6. w+写读7. a+写读(追加写读)8. 其他操作方法9. 文件的修改以及另一种打开文件句柄的方式 一. 初识文件操作 1. 文件中我们经常用open来打开文件,或取到文件的句柄. 然后通过文件句柄就可以对文件进行各种各样的操作了.根据打开方式的不同能够执行的操作也会有不同的操作. 打开文件的方式: r ,w,a ,a+,w+,a+,rb,wb,ab,r+b,w+b,a+b

2018.12.6 今日所学

今日主要学习了 一. 什么是函数二. 函数定义, 函数名, 函数体以及函数的调?三. 函数的返回值四. 函数的参数 一, 什么是函数               如果找不到合适的函数名称 ,用 fu 或者是 func 类比于之前初中学的函数 f(x)=x+2  f(x)就是由x创建的函数 但是计算机中的函数与我们之前学习的函数有很大的差距 在python中, 我们创建函数需要用def创建函数,就是定义函数 例如: def fu(): print('打开陌陌') print('找到心仪的女生')

2018.11.29今日所学

今天主要学习了 列表 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操作(重点) 添加: 1. append() 追加 2. insert(位置, 元素) 插入指定元素到指定位置 删除: 1. pop(index) 根据索引删除 2. remove(元素)  根据元素删除 修改: 索引修改 lst[索引] = 元素 查询: for循环. 3. 列表的嵌套 多个列表互

【谜客帝国】第143届月思主擂谜会(2018.12.15)

 [谜客帝国]第143届月思主擂谜会(2018.12.15) 主持:瓷  计分:默沫 1.“六根清净几人有”(6笔字)伉/月思 [注:面出黄若初<访山寺偶成>,“?,一世荣华百岁无.”] 2. 数点霁霞山外断(3字足球术语)541/月思 3.“鸟上残花枝畔啼”(11笔字)菌/月思 [注:面出谢宗万<道中即景>,“客临古渡岸前望,?.”] 4.“白屋风光难入眼”(列人二,2+2)舍之.景差/月思 [注:面出黄东<山居抚琴>,“?,任凭曲韵释忧愁.”] 5.“任凭曲韵释忧愁

Archives: 2018/12

学而时习之,不亦乐乎 分类 linux3 运维3 专题7 事务1 会话1 数据一致性2 算法1 设计模式1 集合1 工具4 Maven1 docker3 并发编程8 多线程8 框架11 Netty1 Spring10 消息中间件5 Kafka4 RabbitMQ1 锦绣前程1 时光轴 七月 20198 六月 20197 三月 20193 二月 201913 十二月 20189 友情链接 享学课堂 朝 大专栏  Archives: 2018/12·闻·道 主题作者 撄而后成 Maven环境隔离 网

2018春招-今日头条笔试题-第三题(python)

题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出'1234567890',对于输入表达试获得对应的结果利用python内置函数eval()即可以实现.利用5个字符串来表达'1234567890',如下(为了好看,里面加了tab空格符) '66666 ....6 66666 66666 6...6 66666 66666 66666 66666 66666''6...6 ....6 ....6 ....6 6...6 6.... 6

2018.12.1 Test

目录 2018.12.1 Test A 串string(思路) B 变量variable(最小割ISAP) C 取石子stone(思路 博弈) 考试代码 B C 2018.12.1 Test 题目为2018.1.2雅礼集训. 时间:3.5h 期望得分:100+30+10 实际得分:100(0)+0+10 A 串string(思路) 如果一个串不是回文串,答案是1(我竟然漏了QAQ). 否则,除了以下三种情况无解外,都能两次消掉: aaaaa aabaa ababa 判一下就OK了. #inclu

2018.12.3

今日所学 一.  小数据池 二.  is 和==的区别 三.  编码的问题 一.小数据池的作用 用来缓存数据 可以作用的数据类型: 整数(int), 字符串(str), 布尔值(bool). 什么是块? 代码块: ?个模块, ?个函数, ?个类, 甚?每?个command命令都是?个代码块. ?个?件也是? 个代码块, eval()和exec()执?的时候也是?个代码块 二 . is 和== 的区别 id() 通过id 可以查找到一个变量表示的值在内存中的地址. 例如: .    s = 'al