字典

python中唯一具有映射关系的数据类型: 字典的查询效率高于列表

能将元组变成字典  dict((1,2),(3,4))

d={[1,2,3]:"yuan","name":"egon"}

键唯一且为不可变数据类型,key值相同,要覆盖
list是unhashable类型,是可变类型

key 必须唯一
字典是无序的

names = {

    3714811995053432: {"name":"Alex Li", "age":22},
    11023232323: {"name":"Jack Li", "age":52},
    111: ["rain"],
    112: ["rain"],
    115: ["rain115"],
    118: ["rain from name1"],

}


dict2 = {
    118: ["rain"],
    113: ["rain"],
}
names.update(dict2)   #合并两个字典,如果key有相同的则会覆盖

#

names[111][0] = "QinZhen" #修改
names[111].append(28)    #追加value的值
names[222] = "mike"       #没有响应的key值,则添加
names.setdefault('Age',7) #添加


#
print(names.pop(118)) #删除指定的key,返回value
print(names.pop(11000,None))  #删除指定的key,没有则返回None
print(names.popitem())   #默认删除最后一个,返回删除的key,value没有就报错
del names[112] # print(names) #所有 print(names[112]) print(names.get(113)) #查询key对应的value,如果内没有相应的key,返回None print(113 in names) #判断是否在字典里有这个key,返回布尔值 print(names.keys()) #返回值是列表,需要list转化后才能取值 print(names.values())
print(list(names.keys())) #强制转化成列表

v=names.get("names11",None) #推荐,取不到时,赋予None值
print(v)
for i in names: print(i, names[i] ) #遍历字典 
for k,v in names.items(): #不要用 ,效率低 print(k,v) #遍历字典

 

浅拷贝例子:

account = {     'name':'秦镇',     

        'id':1234,      

        'info' : [200, 10 ]

      }

account2 = account.copy()    #复制一个新的字典,属于浅拷贝

account2['name'] ="骗子"    #修改字典的值

account["info"][1] += 30 print(account,account2)       

#两个字典中key对应的列表中的值都变了,应用银行的副卡

 

 

创建字典:

info = {}

info=  info.fromkeys([1,2,3],{})  

fromkey方法,创建一个新的字典,fromkeys(可迭代序列作为键值,键对应的初始值)

print(info)

结果{1: {}, 2: {}, 3: {}}

或者

a = {1,2} 

b=dict.fromkeys(a)   # a可以为列表、集合、元组

print b

结果:{1: None, 2: None}

 


字典排序: 

1.sorted函数按key值对字典排序

先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。
其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,
reverse则是用来指定排序是倒序还是顺序,reverse
=true则是倒序,reverse=false时则是顺序,默认时reverse=false。

 

 

2.sorted函数按value值对字典排序
要对字典的value排序则需要用到key参数,在这里主要提供一种使用lambda表达式的方法,如下:

 

 

 

 

 

 

 

 

 

 

posted @ 2017-04-22 18:59  shy车队破风手  阅读(189)  评论(0编辑  收藏  举报