字典由一对key:value 组成的 python中常用且重量级的数据类型

1. key , keys, values

字典由一对key:value 组成的 python中常用且重量级的数据类型
1. key , keys, values
id_db = {
'jboss':{
'mycis': '10.88.130.38',
'ec':'10.88.130.29',
'rds':'10.88.130.25'
},
'jetty':{
'mycis':'10.88.130.37',
'ec':'10.88.130.36'
}
} print(id_db)
for key in id_db: #字典的key
print(key,id_db[key]) key_list = id_db.keys() #字典的keys属性
value_list = id_db.values() #字典的values属性
print(key_list)
print(value_list) #运行结果:
{'jboss': {'rds': '10.88.130.25', 'ec': '10.88.130.29', 'mycis': '10.88.130.38'}, 'jetty': {'ec': '10.88.130.36', 'mycis': '10.88.130.37'}}
jboss {'rds': '10.88.130.25', 'ec': '10.88.130.29', 'mycis': '10.88.130.38'}
jetty {'ec': '10.88.130.36', 'mycis': '10.88.130.37'}
dict_keys(['jboss', 'jetty'])
dict_values([{'rds': '10.88.130.25', 'ec': '10.88.130.29', 'mycis': '10.88.130.38'}, {'ec': '10.88.130.36', 'mycis': '10.88.130.37'}])

2.字典的查询 dir[index], dir.get[index]

server_list = {
'uat': {
'jboss': 'fca-vm-uat-jboss',
'jetty':'fca-vm-uat-jetty'
},
'dev':{
'jboss':'fca-vm-dev-jboss',
'jetty':'fca-vm-dev-jetty'
},
'prod':{
'jboss':'fca-vm-prod-jboss',
'jetty':'fca-vm-prod-jetty'
}
}
print(server_list)
print("第一种查询方式")
print(server_list['uat']) #如果不存在这样的可以, 程序会报错
print("第二种查询方式")
print(server_list.get('test')) #如果不存在 这样的key, 将返回None,推荐使用.get() #测试结果:
{'prod': {'jetty': 'fca-vm-prod-jetty', 'jboss': 'fca-vm-prod-jboss'}, 'dev': {'jetty': 'fca-vm-dev-jetty', 'jboss': 'fca-vm-dev-jboss'}, 'uat': {'jetty': 'fca-vm-uat-jetty', 'jboss': 'fca-vm-uat-jboss'}}
第一种查询方式
{'jetty': 'fca-vm-uat-jetty', 'jboss': 'fca-vm-uat-jboss'}
第二种查询方式
None

3.字典增加/改变元素,直接索引,赋值即可, 有这个key则更改, 无这个可以则增加

server_list = {
'uat': {
'jboss': 'fca-vm-uat-jboss',
'jetty':'fca-vm-uat-jetty'
},
'dev':{
'jboss':'fca-vm-dev-jboss',
'jetty':'fca-vm-dev-jetty'
},
'prod':{
'jboss':'fca-vm-prod-jboss',
'jetty':'fca-vm-prod-jetty'
}
}
print(server_list)
#增加字典的元素
server_list['test']={
'jboss':'fca-vm-test',
}
server_list['dev']['apache']='dev-apache'
#改变字典的value
server_list['uat']['jboss']='10.88.130.38'
{'dev': {'jboss': 'fca-vm-dev-jboss', 'jetty': 'fca-vm-dev-jetty'}, 'uat': {'jboss': 'fca-vm-uat-jboss', 'jetty': 'fca-vm-uat-jetty'}, 'prod': {'jboss': 'fca-vm-prod-jboss', 'jetty': 'fca-vm-prod-jetty'}}
{'test': {'jboss': 'fca-vm-test'}, 'dev': {'jboss': 'fca-vm-dev-jboss', 'jetty': 'fca-vm-dev-jetty', 'apache': 'dev-apache'}, 'uat': {'jboss': '10.88.130.38', 'jetty': 'fca-vm-uat-jetty'}, 'prod': {'jboss': 'fca-vm-prod-jboss', 'jetty': 'fca-vm-prod-jetty'}} #运行结果:

4.删除字典的元素: del , pop

server_list = {
'uat': {
'jboss': 'fca-vm-uat-jboss',
'jetty':'fca-vm-uat-jetty'
},
'dev':{
'jboss':'fca-vm-dev-jboss',
'jetty':'fca-vm-dev-jetty'
},
'prod':{
'jboss':'fca-vm-prod-jboss',
'jetty':'fca-vm-prod-jetty'
}
}
print(server_list)
del server_list['uat']
server_list['dev'].pop('jboss')
print(server_list) #运行结果:
{'prod': {'jetty': 'fca-vm-prod-jetty', 'jboss': 'fca-vm-prod-jboss'}, 'dev': {'jetty': 'fca-vm-dev-jetty', 'jboss': 'fca-vm-dev-jboss'}, 'uat': {'jetty': 'fca-vm-uat-jetty', 'jboss': 'fca-vm-uat-jboss'}}
{'prod': {'jetty': 'fca-vm-prod-jetty', 'jboss': 'fca-vm-prod-jboss'}, 'dev': {'jetty': 'fca-vm-dev-jetty'}}

5字典的update 属性

dir1 = {
'id':6103241990,
'name':'xiaoping',
'age':26
} dir2 = {
'id':6103241988,
'name':'ruiping',
'sex':'woman'
}
print(dir1)
print(dir2)
dir1.update(dir2) #如果dir2有dir1 中的key,则updatedir1, 如果没有则保留dir1
print(dir1)
print(dir2) #运行结果
{'id': 6103241990, 'age': 26, 'name': 'xiaoping'}
{'id': 6103241988, 'sex': 'woman', 'name': 'ruiping'}
{'id': 6103241988, 'age': 26, 'sex': 'woman', 'name': 'ruiping'}
{'id': 6103241988, 'sex': 'woman', 'name': 'ruiping'}

update

6.items 将字典转化为列表, 不建议使用

>>> a  = {'name':'bianxiaoping', 'sex':'man'}
>>> a.items()
dict_items([('name', 'bianxiaoping'), ('sex', 'man')])
>>>

7.setdefault  (if key exit , return a[key], if not a[key]='Not exist'

""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
>>> a  = {'name':'bianxiaoping', 'sex':'man'}
>>> a.setdefault('age')
>>> a
{'age': None, 'name': 'bianxiaoping', 'sex': 'man'}
>>> a.setdefault('name')
'bianxiaoping'
>>> a.setdefault('job','Not exist')
'Not exist'
>>> a
{'age': None, 'name': 'bianxiaoping', 'sex': 'man', 'job': 'Not exist'}

8. 字典中的包含关系  in (只针对于key)

>>> a  = {'name':'bianxiaoping', 'sex':'man'}
>>> 'sex' in a
True
>>> 'age' in a
False
>>> 'man' in a
False
>>>

python 数据类型 ----字典的更多相关文章

  1. Python 数据类型--字典类型

    字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...

  2. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  3. Python数据类型-字典

    字典(dict) 字典是key:value形式的一种表达形式,例如在Java中有map,JavaScript中的json,Redis中的hash等等这些形式.字典可以存储任意的对象,也可以是不同的数据 ...

  4. 9 python 数据类型—字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...

  5. python数据类型——字典类型

    字典(dictionary) python中唯一的映射类型,采用键值对(key-value)的形式储存数据,python对key进行哈希函数运算,所以key值必须是可哈希的,可哈希表示key必须是不可 ...

  6. python初步学习-python数据类型-字典(dict)

    字典 字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起.注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息. 注意,你只 ...

  7. Python数据类型--字典(dict)

    Python中的字典是键值对(key-value)的无序集合.每个元素包含"键"和"值"两部分,这两部分之间使用冒号分隔,表示一种对应关系.不同元素之间用逗号分 ...

  8. python 基础 1.5 python数据类型(四)--字典

    一.python 数据类型--字典 1.用字符串存储信息,如:存储“姓名,身高,性别”: In [1]: info='Tom 170 M' //字符串存储信息 In [3]: info[0:3] // ...

  9. python基础3 ---python数据类型二

    ython基础 一.python数据类型     ------列表(list) 1.定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性:可存放多个不同类型的值:可修改指定索 ...

随机推荐

  1. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  2. .NET 4.6.2正式发布带来众多特性

    虽然大多数人的注意力都集中在.NET Core上,但与原来的.NET Framework相关的工作还在继续..NET Framework 4.6.2正式版已于近日发布,其重点是安全和WinForms/ ...

  3. "无法删除数据库,因为该数据库当前正在使用"问题解决

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 以前刚学数据库的时候比较苦恼这个问题,今天删除的时候又看见了,正好一起记录一下 ...

  4. 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  5. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  6. SDWebImage源码解读之SDWebImageCache(下)

    第六篇 前言 我们在SDWebImageCache(上)中了解了这个缓存类大概的功能是什么?那么接下来就要看看这些功能是如何实现的? 再次强调,不管是图片的缓存还是其他各种不同形式的缓存,在原理上都极 ...

  7. C# Entity Framework并发处理

    原网站:C# Entity Framework并发处理 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NE ...

  8. webix前端架构的项目应用

    webix框架兼容javascript.HTML.CSS,应用比较灵活,应用框架时,配合后台webAPI,整个web项目里面,App文件夹保存前台的多语言文件,图片文件,webix原代码js.css, ...

  9. 【原】无脑操作:express + MySQL 实现CRUD

    基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...

  10. canvas快速绘制圆形、三角形、矩形、多边形

    想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...