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
对字典的操作:
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:完全复制,拷贝对象及其子对象
浙公网安备 33010602011771号