"""初始化一个dict的四种方式:

1. dict() -> 创建一个空的dict

2. dict(mapping) -> new dictionary initialized from a mapping object's

(key, value) pairs

3. dict(iterable) -> new dictionary initialized as if via:

d = {}

for k, v in iterable:

d[k] = v

4. dict(**kwargs) -> new dictionary initialized with the name=value pairs

in the keyword argument list. For example: dict(one=1, two=2)"""

#第一种方式

d =dict()#第二种方式#d = {"person": {"name": "admin", "age": 12},#"animal": {"name": "gaodan", "age": 3},#}

#第三种方式

d = dict({"name": "admin"})print(d)#第四种方式

d = dict(name='admin', age=12)print(type(d))print("原字典:%s" % d) #{'name': 'admin', 'age': 12}

#clear, 清空#d.clear()#print(d)

#copy 浅拷贝

new_d=d.copy()print("copy出的新字典:%s" % new_d) #{'name': 'admin', 'age': 12}

new_d['name'] = 'root'

print('修改之后的copy字典:%s' % new_d) #修改之后的copy字典:{'name': 'root', 'age': 12}

print("修改之后的原字典:%s" % d) #{'name': 'admin', 'age': 12}#总结: copy浅拷贝简单数据结构时,创建了一个新的对象,修改新dict中的值,不会引起原有dict中值的变化

print('*' * 50)

d= {"person": {"name": "admin", "age": 12},"animal": {"name": "gaodan", "age": 3}

}print(d) #{'person': {'name': 'admin', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

new_d =d.copy()

new_d['person']['name'] = 'root'

print(new_d) #{'person': {'name': 'root', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

print(d) #{'person': {'name': 'root', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

#总结: 浅拷贝: copy浅拷贝复杂数据结构时,只是指向了这个复杂数据结构的引用,并没有创建一个新的对象.所以修改new_d这个新dict的值时,原dict中的值也发生变化.如果是简单数据结构,不存在这类情况,上面也有示例

"""python中的深拷贝 需要 import copy

copy.deepcopy()"""

print('--------------------deep copy------------------')importcopy

d= {"person": {"name": "admin", "age": 12},"animal": {"name": "gaodan", "age": 3}

}print(d)

dd=copy.deepcopy(d)print(dd) #{'person': {'name': 'admin', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

dd['person']['name'] = '哑巴'

print(dd) #{'person': {'name': '哑巴', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

print(d) #{'person': {'name': 'admin', 'age': 12}, 'animal': {'name': 'gaodan', 'age': 3}}

#fromkeys, 创建一个新的dict ,key是序列中的值

d = dict.fromkeys(['jet','lily'],{"name":"mam"})print(d) #{'jet': {'name': 'mam'}, 'lily': {'name': 'mam'}}

#get .取值 ,没有就是None

value = d.get("jet")print(value) #{'name': 'mam'}

d= {"name":'admin','age':12}#items 方法

kv =d.items()for k,v inkv:print(k,v)

keys=d.keys()print(keys) #dict_keys(['name', 'age'])

#pop(key) 移除指定的key 对应的kv#value = d.pop('name') # 删除name 键值对#print(value) # admin#print(d) # {'age': 12}

#popitem 移除后面的一组item

popitem =d.popitem()print(popitem) #('age', 12) 移除了这一对映射关系

print(d) #{'name': 'admin'} d 还剩下这玩艺

d= {"name":'admin','age':12}#setdefault(k,v) , 如果原dict有中k, 就返回原dict中k-->v , 否则就将k,v添加到dict中

default_value = d.setdefault('female', 'ali')print(default_value)print(d) #{'name': 'admin', 'age': 12, 'female': 'ali'}

default_value= d.setdefault('female', 'jd')print(default_value) #ali

print(d) #{'name': 'admin', 'age': 12, 'female': 'ali'}

#update. 往dict中添加元素#使用update的第一种方式 ,注意key没有加引号#d.update(book='python',teacher='dog')

print(d) #{'name': 'admin', 'age': 12, 'female': 'ali', 'book': 'python', 'teacher': 'dog'}

#使用update的第二种方式

d.update([('teacher','dog'),{'book','java'}]) #好吊的样子

print(d) #{'name': 'admin', 'age': 12, 'female': 'ali', 'teacher': 'dog', 'book': 'java'}

#values

vs=d.values()print(vs) #dict_values(['admin', 12, 'ali', 'dog', 'java'])

dict取值_dict常用操作相关推荐

  1. jquery对文本赋值和取值_jQuery对表单元素的取值和赋值操作代码

    JS jQuery对表单元素的取值和赋值操作代码 作者: 来源:www.28hudong.com2013-03-30 00:52:47 阅读次 $("#keyword")[0].v ...

  2. dict取值_Python基础数据类型「list、tuple、dict」

    数组类型 数据类型划分:可变数据类型.不可变数据类型 不可变数据类型:元组, bool, int, str 可哈西 可变数据类型:list, dict, set 不可哈西 字典(dict): key ...

  3. jQuery对表单元素的取值和赋值操作代码

    使用常规的思路:$("#keyword").value 取值是取不到的,因为此时$('#keydord')已经不是个element,而是个jquery对象,所以应该使用:$(&qu ...

  4. jquery对文本赋值和取值_jQuery常用的取值或赋值的方法

    $(selector).data(name) 从被取元素返回附加的数据 存在一个div标签: 则:$("div").data("meeting") 返回的结果为 ...

  5. CYQ.Data 轻量数据层之路 使用篇三曲 MAction 取值赋值(十四)

    上一篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三) 内容概要 本篇继续上一篇内容,本节介绍所有取值与赋值的相关操作. 1:原生:像操作Row一样 2:扩展:对UI操 ...

  6. 微信小程序存储(数据缓存,存储和取值)

    以下两个是做开发时存储和取值较为常用的API: onLoad() {wx.setStorageSync('tokeys', '测试一手');var value = wx.getStorageSync( ...

  7. js--textarea的取值赋值

    取值赋值常用的方法,html(),text(),val() 单独说说textarea .它是表单元素,val()可用 .它是闭合标签,html(),text()可用 这三个都可以取值赋值,会有怎样的效 ...

  8. textarea的取值赋值

    取值赋值常用的方法,html(),text(),val() 单独说说textarea .它是表单元素,val()可用 .它是闭合标签,html(),text()可用 这三个都可以取值赋值,会有怎样的效 ...

  9. Jquery常用操作:checkbox、select取值,radio、checkbox、select选中及其相关

    常用Jquery操作:checkbox取值.select取值.radio选中.checkbox选中.select选中及其相关: 1.影藏页面元素 使用jquery真的很方便,比如要控制div的显示与隐 ...

最新文章

  1. SpringMVC工作原理详解
  2. 从疫情到求职寒冬,我的算法求职经历
  3. 《Python Cookbook》 最佳译本开放下载啦!
  4. java lambda 变量_为什么Java中lambda表达式不能改变外部变量的值,也不能定义自己的同名的本地变量呢?...
  5. C#总结项目《汽车租聘系统》项目代码实例【全注释版】
  6. localdatetime 默认时间_datetime-local设置初始值
  7. C#多线程和异步(二)——Task和async/await详解(转载)
  8. 摘来的去视频网站的广告方法
  9. java设置随机数教程
  10. MySQL VARCHAR的说明信息
  11. 第3章(3.2~3.7节)线性/Softmax回归实现【深度学习基础】--动手学深度学习【Tensorflow2.0版本】
  12. opencv保存设像头图片时调整白平衡功能
  13. layui分页样式改变
  14. 有效学习的6个方法学习方法
  15. 销售报表案例--如何应用Excel创建销售漏斗分析仪
  16. Elasticsearch学习第二篇--常用的几种搜索方式
  17. C语言实现简单小游戏---扫雷
  18. 谷歌高质量外链怎么做?Google网站买英文外链可行吗?
  19. 2023新年祝福代码[css动画特效]
  20. sqlserver对cpu主频要求_SqlServer CPU篇及常用性能阈值

热门文章

  1. 充一次电使用一年的手机_难怪手机的电量不耐用,是充电方法错了,这样充电手机多用一年...
  2. 新神魔大陆服务器现在在维护吗,新神魔大陆12月11日更新一览
  3. Python利用百度AI平台实现人脸识别
  4. qcustomplot基础练习(曲线)
  5. 我们常说的十三薪、十五薪这种,能百分之百发下来吗?它和年终奖有什么区别?...
  6. 【C语言】详解strlen函数 | 模拟实现strlen函数的三种方法 | 写库函数的人是如何实现这个函数的
  7. 用Html和js上传图片
  8. DLL注入:远程线程注入
  9. 掌门1对1java面试_掌门1对1
  10. 6.7. 在 Heroku 上使用 PostgreSQL