0
点赞
收藏
分享

微信扫一扫

Python-dict的常用方法


文章目录

  • ​​常用方法​​
  • ​​浅拷贝copy​​
  • ​​深拷贝​​
  • ​​list转换dict​​
  • ​​items​​
  • ​​clear​​
  • ​​update​​
  • ​​setdefault​​

常用方法

浅拷贝copy

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}
new_dict = a.copy()
new_dict["ilpy1"]["company"] = "wtf"
print(new_dict)
print(a)
print(id(a))
print(id(new_dict))
print(id(new_dict["ilpy1"]["company"]))
print(id(a["ilpy1"]["company"]))

然后我们发现,执行这一步操作时​​new_dict["ilpy1"]["company"] = "wtf"​​​,对a也执行了修改,比较id可知​​new_dict["ilpy1"]["company"]))​​​和​​a["ilpy1"]["company"]​​​指向了同一位置,而​​a​​​与​​new_dict​​指向不同位置,这就是浅拷贝的副作用

深拷贝

这并不是​​dict​​​自带的方法而是来自python的一个包​​copy​

import copy

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}


new_dict = copy.deepcopy(a)
print(id(a))
print(id(new_dict))
a['ilpy1']['company'] = "666"
print(a)
print(new_dict)

list转换dict

import copy

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}


myList = ['aaa', 'bbb']
new_dict = dict.fromkeys(myList, "2")
print(new_dict)

items

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}


for key,value in a.items():
print(key,value)

clear

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}
# clear 清楚dict元素
# a.clear()
# print(a)

update

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}


a.update(a=1,b=2)
print(a)

传入可迭代对象也可

a = {"ilpy1": {"company": "aaa"},
"ilpy2": {"company": "bbb"}
}


a.update([('1','2')])
print(a)
a.update((('1','2'),))
print(a)

setdefault

Python 字典 setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。所以当我们需要快速判断键值对是否存在并且加上去的时候就可以使用此方法


举报

相关推荐

0 条评论