字典由一对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. NodeJs之Path

    Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...

  2. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  3. Apache Ignite之集群应用测试

    集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...

  4. 《JavaScript设计模式与开发实践》整理

    最近在研读一本书<JavaScript设计模式与开发实践>,进阶用的. 一.高阶函数 高阶函数是指至少满足下列条件之一的函数. 1. 函数可以作为参数被传递. 2. 函数可以作为返回值输出 ...

  5. 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第十二节)

    好的,那么在上一节中呢,评论功能的后台已经写好了,这一节,先把这部分后台代码和前台对接一下. 1.评论功能实现 我们修改一下保存评论按钮的点击事件,用jQuery的方式获取文本框中的值,然后通过aja ...

  6. “老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春

    火热的MVVM框架 最近几年最热门的技术之一就是前端技术了,各种前端框架,前端标准和前端设计风格层出不穷,而在众多前端框架中具有MVC,MVVM功能的框架成为耀眼新星,比如GitHub关注度很高的Vu ...

  7. windows 部署 git 服务器报 Please make sure you have the correct access rights and the repository exists.错误

    这两天在阿里云上弄windows 服务器,顺便部署了一个git服务.根据网上教程一步步操作下来,最后在 remote远程仓库的时候提示 fatal: 'yourpath/test.git' does ...

  8. 【腾讯Bugly干货分享】动态链接库加载原理及HotFix方案介绍

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57bec216d81f2415515d3e9c 作者:陈昱全 引言 随着项目中动 ...

  9. ZooKeeper1 利用虚拟机搭建自己的ZooKeeper集群

    前言:       前段时间自己参考网上的文章,梳理了一下基于分布式环境部署的业务系统在解决数据一致性问题上的方案,其中有一个方案是使用ZooKeeper,加之在大数据处理中,ZooKeeper确实起 ...

  10. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...