温故而知新,可以为师矣

每天一更,关于以前学习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)

  1. 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也用{}表示。




python中for in循环不能遍历 python for in 不能遍历_删除元素


1.增

add(str) # 添加字符串的内容

update(str) # 迭代更新

2.删除

pop() # 随意弹出一个

remove() # 删除指定的元素,但是不存在就会报错

clear() # 清空set

3.修改

因为无需,所以无法定位,采取先删除后增加的方法

4.查询

set是一个可迭代的对象,所以用for进行循环