加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

自学Python编程的第八天----------来自苦逼的转行人

发布时间:2020-12-20 10:41:06 所属栏目:Python 来源:网络整理
导读:2019-09-18-21:11:24(初学者不会学博客,望大家见谅见谅) 今天学的内容是有关list.、dict、set集合的使用方法和注意事项 list和dict在循环中不可删,而且list在迭代输出时进行删除是会导致索引跟着改变 所以一般list不在循环过程中进行删除 list和dict要进行删

2019-09-18-21:11:24(初学者不会学博客,望大家见谅见谅)

今天学的内容是有关list.、dict、set集合的使用方法和注意事项

list和dict在循环中不可删,而且list在迭代输出时进行删除是会导致索引跟着改变

所以一般list不在循环过程中进行删除

list和dict要进行删除时,应该把要删除的记录到另一个列表中,然后在进行删除

深浅拷贝:

浅拷贝只拷贝第一层的内容,而深拷贝是全部内容都进行了拷贝

下面是总结的内容:

一.重要知识点
1. str. join() 把列表变成字符串
2. 列表不能在循环的时候删除.因为索引会跟着改变
注意:由于删除元素会导致元素的索引改变,所以容易出现问题. 尽量不要在循环中直接去删除元素.
可以把要删除的元素添加到另?个集合中然后再批量量删除.
3. 字典也不能直接循环删除.(dict中的元素在迭代过程中是不允许进?删除的)
把要删除的内容记录在列表中. 循环列表. 删除原列表,字典中的数据
4. fromkeys() 不会对原来的字典产生影响. 产生新字典(神坑,考试)
5. set集合. 不重复,无序.
注意: set集合中的元素必须是可hash的,但是set本身是不可hash的. set是可变的
set去重操作比较常用
6. 想转换成什么.就用什么括起来
7. 深浅拷贝(拷贝要比创建对象过程要快得多)
1. 直接赋值. 两个变量指向同一个对象.
对于list,set,dict来说,直接赋值. 其实是把内存地址交给变量.并不是复制?份内容.
所以. lst1的内存指向和lst2是?样的. lst1改变了,lst2也发?了改变
2. 浅拷贝:只拷贝第一层内容. 第二层内容不会被拷贝copy()
3. 深度拷贝: 对象中的所有内容都会被拷贝一份
import copy
copy.deepcopy()

二.错误总结
1.把问题复杂化
lst= [‘jinpingmei‘,‘解救吾先生‘,‘美国往事‘,‘西西里的美丽传说‘]
dic={}
for el in lst:
content=input(‘请给%s电源评分:‘ % el)
if dic.get(el)==None: ‘‘‘
dic[el]=content 这里可以更加简单写
else: 改正的方法在下一个
dic[el].append(content) ‘‘‘
print(dic)

for el in lst:
content=input(‘请给"%s"电影评分:‘ % el)
dic[el]=content
print(dic)
#错先这个错误的原因是因为没有想到dic字典的增删改查中的增的作用,把问题复杂化了,还不会充分利用连贯所学的知识点
解决方法:需要把所学的知识点在过一遍,然后总结看哪些知识点是可以连贯在一起使用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读