温故而知新,可以为师矣!
每天一更,关于以前学习python的日常笔记,还望大家各位看官喜欢,同时也希望能够帮助到大家。
补充字符串的一个基本操作
str.join(str) 把前面的字符串插入到括号里面的字符串中
1 s = "alex" 2 3 d = '_'.join(s) 4 print(d) # 输出 a_l_e_x
有序列表和无需字典的循环删除分析:
2.1有序列表的循环删除
li =[11,22,33,44]
2. for e in li:
3. li.remove(e)
- 4. print(li) # 输出 [22,44]
原因:for的运行过程中,会有一个指针来记录当前循环的元素是那一个,一开始这个指针指向第0个,然后获取到第0个元素,紧接着删除第0个,这个时候,原来是第一个元素会自动变成第0个,然后指针向后移动一次,指向1元素,这时原来的1已经变成了0,也就不会删除了。
接下来尝试了del删除,和pop删除,但是都不太好使。所以,只有用另一个列表先记录你要删除的内容,然后循环删除
1 li = [11,22,33,44] 2 3 del_li = [] 4 5 for e in li: 6 del_li.append(e) 7 8 for e in del_li: 9 li.remove(e) 10 11 print(li) # 输出[]
注意:由于删除元素会导致元素的索引改变,所以容易出现问题,尽量不要在循环中直接去删除元素,可以把要删除的元素添加到另一个集合中,然后在批量删除
2.2 无序字典的循环删除
1 2 3 4 li = {'name':'alex','age':18,'add':'sh'} 5 6 for key in li.keys(): 7 del li[key] 8 9 print(li) 10 11 12 13 14 # 会报错 15 16 # RuntimeError: dictionary changed size during iteration
二、set集合
set集合是python中的一个基本数据类型,一般不是很常用,set中的元素是不重复,无序的,里面的元素必须是可以hash的,简言之,set就是dict类型的数据,但是里面不存Value,只保存key, set也用{}表示。
1.增
add(str) # 添加字符串的内容
update(str) # 迭代更新
2.删除
pop() # 随意弹出一个
remove() # 删除指定的元素,但是不存在就会报错
clear() # 清空set
3.修改
因为无需,所以无法定位,采取先删除后增加的方法
4.查询
set是一个可迭代的对象,所以用for进行循环
最后,小编再说一句,作为学习python 七年的过来人,我自己整理了一套最新python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。群号:877562786