码迷,mamicode.com
首页 > 编程语言 > 详细

python 数据类型 ----字典

时间:2016-12-04 23:36:12      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:and   exist   false   jboss   turn   dict   查询   .com   update   

字典由一对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 数据类型 ----字典

标签:and   exist   false   jboss   turn   dict   查询   .com   update   

原文地址:http://www.cnblogs.com/frankb/p/6132250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!