python-字典操作

需求:all_list=[11,22,33,44,55,66,77,88,99]

从这个列表中,将大于66的数值放在dic字典中key1中,其它的数值放在字典key2中。

练习重点:dic、list

#! /usr/bin/env python
# coding=utf-8
all_list = [11,22,33,44,55,66,77,88,99,90,98]
dic = {}
for i in all_list:
    if i > 66:
        if "key1" in dic.keys():
            dic["key1"].append(i)
        else:
            dic["key1"] = [i, ]
    else:
        if "key2" in dic.keys():
            dic["key2"].append(i)
        else:
            dic["key2"] = [i, ]
print dic
View Code

对字典的操作:

  1、get(key,default)

    get key操作,若查找的这个key不存在则返回default的值,若不设定default,则返回None。若key存在则返回这个key对应的vaule

dic1 = {1:1,2:2,3:3}
print dic1.get(1)
1
print dic1.get(5)
None
print dic1.get(8,1)
1

  2、update(dic)

   增加合并字典。对字典来说,update,若原来的索引存在,则覆盖此索引的值,若索引不存在,则添加此kv,例子:

dic1 = {1:2,2:22,3:33,4:44}
dic2 = {1:"test",5:5}
dic1.update(dic2)
print dic1
{1: 'test', 2: 22, 3: 33, 4: 44, 5: 5}

可以看出,索引是1的值被覆盖,索引为5添加到字典中

  3、has_key(key)

    若存在这个key,则返回True,不存在返回False

dic1 = {1:1,2:2,3:3}
print dic1.has_key(1)
True
print dic1.has_key(5)
False

  4、keys()

    查看所有的主键

dic1 =  {1:1,2:2,3:3}
print dic1.keys()
[1,2,3]

  5、items()

    遍历字典中的主键和值

dic1 = {1:1,2:2,3:3,4:4}
for k,v in dic1.iterms():
    print k,v
1 1
2 2
3 3
4 4

将所有字典项以列表的方式返回,并且没有特定顺序

  6、del

    删除字典中的某个键值对 

dic1 = {1:1,2:3,4:8}
del dic1[1] #注意是方括号
print dic1
{2:3,4:8}

  7、popitem()

    随机得到一个键值对,并从字典中删除。字典和list的区别:list是有序的,但是字典是无序的,因为字典是key vaule的形式,不需要另外的序。

  8、clear()

    dic.clear()直接清空字典,并删除。

  9、copy 

    浅copy:浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象

dic1 = {1:"a",2:"b",3:"c"}
dic2 = {4,"d"}
dic2 = dic1.copy()
print dic1
print dic2
{1: 'a', 2: 'b', 3: 'c'}
{1: 'a', 2: 'b', 3: 'c'}
dic1 = {1:{2:[3,3]}}

不管复制给这个字典是否有值,都会覆盖原来的值,成为新的字典,和被覆盖的值保持一模一样,

   深copy:完全复制,拷贝对象及其子对象

     

posted on 2016-12-01 10:59  初出茅庐的孩纸  阅读(100)  评论(0)    收藏  举报

导航