其实,这个例子是我简化过的,我是在一个多线程的程序里发现这个问题的,所以,我的建议是:遍历dict的时候,养成使用 for k in d.keys() 的习惯。 不过,如果是多线程的话,这样就绝对安全吗?也不见得:当两个线程都取完d.keys()以后,如果两个线程都去删同一个key的话,先删的会成功,后删的那个肯定会报 KeyE...
])# 要删除的键的列表keys_to_delete = ['b','d']# 遍历要删除的键的列表,并使用pop方法删除它们forkeyinkeys_to_delete:ifkeyinmy_odict: my_odict.pop(key)# 打印修改后的OrderedDict,它会保持剩余元素的顺序print(my_odict)# 输出: OrderedDict([('a', 1), ('c', 3), ('e', 5)]) 在...
可变(不可哈希hash):list,dict,set, list = [11,222,333] 不可变(可哈希hash):str,tuple,int,bool name = 'alex' 容器类: 容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]] 非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]' 字典的key必须是不可变的数据类型,...
第一步是先定义了一个空的list对象,然后遍历dict_data, 将需删除的元素筛选出来,并存储到list中;第二步就是遍历delete_list, 将已经确定的元素从dict_data中删除。 第二种方式,复制一份key 复制一份key就是为了确保循环对象不发生变化,Python也提供了高效的复制方法,即 list(dict), 同样先上代码: for key i...
#方法一 pop(key) 指定删除某个键staff_info ={'name':'lilei','sex':'male','age':28} staff_info.pop('sex')print(staff_info) 结果:{'name':'lilei','age': 28}#方法二 popitem() # 3.5以前是随机删除某个键,3.6以后为删除最后一个键值对staff_info ={'name':'lilei','sex':'male','...
二、遍历字典 1、定义一个字典 dict = {'name':'老周','age':'29','job':'程序员'} # 遍历字典:键值对的集合、健的集合、值的集合 for key,value in dict.items(): print(key+":"+value) 以上实例输出结果: name:老周 age:29 job:程序员 ...
字典在遍历的时候,不能进行删除操作(梯子原理),不然会报错 但是,也有骚操作,在循环中删除key然后再添加一个key,梯子长度不变,不报错,但是由于key值有变化,所有接下来循环的key可能是新增的key值:点击 #我使用的错误用法forkey,valueindict.items():dict.pop(key) ...
i in students: print(students[i].values()) # 输出:dict_keys(['name', 'age']) dict_...
二、字典- 删除数据: 2.1 del() / del 删除字典或删除字典中指定的键值对。 语法: del(字典系列[key]) / del 字典系列[key] 代码示例: 代码语言:python 代码运行次数:0 复制 Cloud Studio代码运行 dict1={'name':'Rose','age':30,'sex':'女'}# del删除字典del(dict1)print(dict1)# 结果报错 Nam...
从结果可以看出来,删除键值对之后,字典中指示缺少一对元素,而删除字典之后,错误提示就变成了变量名没有定义了,说明程序在内存中已经找不到这个字典了。 # 2.pop()删除字典键值对 代码语言:python 代码运行次数:0 复制 Cloud Studio代码运行 dict4={'name':'Tom','age':18}dict4.pop('age')# 删除字典中对...