字典由一对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. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  2. URL安全的Base64编码

    Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可 ...

  3. iOS二维码生成、识别、扫描等

    二维码扫描 前言: 最近的项目中使用到了二维码,二维码这个模块功能也完成:觉得还是有必要总结一下用来做记录.好长时间没有写二维码了都忘记在差不多了,重新拾起来还是挻快的. 二维码使用场景: 生活中有很 ...

  4. Js 原型和原型链

    Js中通过原型和原型链实现了继承 Js对象属性的访问,首先会查找自身是否拥有这个属性 如果查到,则返回属性值,如果找不到,就会遍历原型链,一层一层的查找,如果找到就会返回属性值 直到遍历完Object ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述

    系列目录 为什么要先发这个文章? 因为接下来的文章是关于微信开发的系列,心中一定要有一个概念,知道自己接下来要做什么功能. 而且微信到处都是坑,我首先要把微信与本地跑通起来才敢发布,否则中间出现坑导致 ...

  6. 使用po模式读取豆瓣读书最受关注的书籍,取出标题、评分、评论、题材 按评分从小到大排序并输出到txt文件中

    #coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...

  7. windows下的命令行工具babun

    什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...

  8. Win10连接远程桌面时提示“您的凭据不工作”

    我遇到这个问题的时候查找网上都给出一堆高大上的解决办法, 然而我的错误实际上是用户名的问题, 很多人以为远程用户名就一定是锁屏状态下的登录名, 其实不是,跟自己设置有关,所以首先应该检查远程用户名是否 ...

  9. .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

    在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...

  10. ubuntu+mono+jexus 搭建.net的web平台 实现.net跨平台

    准备工作: vmware 用来安装 ubuntu 下载地址:VMware-workstation-9.0.1-894247.exe.tar 注册码: 1A4P8-DMK0N-FZ431-7K8NH-2 ...