map遇到的坑,map没有has_next函数,删除元素没有返回迭代器的函数
map删除多个元素的方法,是将map拷贝再删除
注意,copy拷贝函数,列表 [:]拷贝都不是深拷贝,但是对于拷贝元素完全是基本数据类型,可近似看为深拷贝,若非基本数据类型,例如元素是嵌套列表,那么原列表改变,拷贝列表仍然会跟着改变。
完全深拷贝要导入 import copy 并调用copy.deepcopy
map1 = {"xiaoming":34,"xiaodong":66,"zhupa":77,"niuren":66}
#map删除多个元素方法
#方法1
d = map1.copy()
for i in d.keys():
if i == "xiaodong" or i == "zhupa":
del map1[i]
print(map1)
#list删除多个元素方法
#方法1
a = [1,2,3,4,[5,6]]
for k in a[:]:
if k == 2 or k==3:
a.remove(k)
print(a)
#方法2
a = [1,2,3,4,[5,6]]
for k in a.copy():
if k == 2 or k==3:
a.remove(k)
print(a)
#set删除多个元素
#方法1
a = set([1,2,3,4,5])
for k in a.copy():
if k == 2 or k == 4:
a.remove(k)
print(a)
b = 3 in a
print(b)