Python字典

Python字典

一、   创建字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。而且字典内的键值对是无序的。并不是你创建时什么样子print时就是什么样子,键值对的顺序可能会变。

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

1.直接创建

a={‘name’:‘tom’,age’:12,’hobby’:[‘sing’,swimming],’number_of_family’:{‘father’:‘dad’,‘mother’:‘mom’}}

2.利用类创建

1)利用元组创建

b=dict((('name','tom'),('age',12)))       #利用元组创建

  print(b)                                              #{'name': 'tom', 'age': 12}

2)利用列表创建

c=dict([['name','tom'],['age',12]])                    #利用列表创建
print(c)                                               #{'name': 'tom', 'age': 12}

二、 字典的操作

1.增

1)直接增加

c={'name': 'tom', 'age': 12}       #创建字典c

c[‘mother’]=’mom’                    #增加[‘mother’: ’mom’]键值对

print(c)                                    #{'mother': 'mom', 'age':12, 'name': 'tom'}

2)使用setdefault

Setdefault是又返回值的创建,可以返回增加键值对的键的值。创建的同时会检索原字典里是否已有该键值对,如果有则不再创建但可以返回键的值,如果没有则创建。且每次只能增加一个键值对,不能同时增加多个。

d={'age': 12, 'name': 'tom'}             #创建字典d
ret=d.setdefault('mother','mom')         #增加{'mother':'mom'}
print(d)                                 #{'name': 'tom', 'mother':'mom', 'age': 12}
print(ret)                               #  mom

2.查

1)直接查询

d={'age': 12, 'name': 'tom'}          #创建字典d

   print (d[‘name’])                                         #  tom

2)查询字典里所有的键名

d={'age': 12, 'name': 'tom'}          #创建字典d
print (list(d.keys()))                #通过用类创建列表的方法列出键名[ 'age', 'name']

3)以列表嵌套元组的方式显示字典内容

d={'age': 12, 'name': 'tom'}         #创建字典d

   print(list(d.items()))                                                      # [('age', 12), ('name', 'tom')]

4)取出字典里的所有键值

d={'age': 12, 'name': 'tom'}          #创建字典d

 print(list(d.values()))                                        # ['tom', 'mom', 12]

3.改

1)重新赋值

d={'age': 12, 'name': 'tom'}        #创建字典d
d[‘name’]=’jim’                     #将name的键值改为jim
print(d)                            # {'name': 'jim', 'age': 12}

2)update

d={'age': 12, 'name': 'tom'}        #创建字典d
e={‘mother’:’mom’}                  #创建字典e
d.update(e)                         #将字典e加到字典d中
print(d)                            # {'name': 'jim', 'mother':'mom', 'age': 12}

4.删

1)del

d={'age': 12, 'name': 'tom'}        #创建字典d

    del d[‘name’]                                     #删除‘name’键值对

print(d)                          # {'age': 12}
del d                             #删除整个字典

2)clear

d={'age': 12, 'name': 'tom'}          #创建字典d

   d.clear()                                                  #清空字典d

   print(d)                                                   # {}

3)pop

Pop可以返回删除键值对的键值。

d={'age': 12, 'name': 'tom'}       #创建字典d

res=d.pop('name')                              #删除‘name’键值对

print(res)                                             #输出删除键值对的键值‘tom’

print('d=',d)                                         # {'age': 12}

5.排序sorted

Sorted()可以将数字按大小重新排列,也可以将字母按大写排在小写前的26个英文字母的顺序排列。如果是字符串则以首字母排列。(实质是按照ASCII码的排序从小到大排列,即数字<大写字母<小写字母)

1)根据键名大小排序

创建字典时键名可以是字符串(str)或整型(int),但排序时两者不能同时出现在同一字典里,否则会报错(TypeError: unorderable types: int() < str())。

d={'b':'1','a':'2','3':'a','1':'b','D':'5'}              #创建字典d

print(d)                                                      # {'3': 'a', 'a': '2', '1': 'b', 'D': '5', 'b': '1'}

print('s=',sorted(d.items()))                        # s= [('1', 'b'), ('3', 'a'),('D', '5'), ('a', '2'), ('b', '1')]

2)将键值按大小输出

创建字典时键值可以是字符串(str)或整型(int),但排序时两者不能同时出现在同一字典里,否则会报错(TypeError: unorderable types: int() < str())。

d={'b':'1','a':'2','3':'a','1':'b','D':'5'}              #创建字典d

print(d)                                                      # {'3': 'a', 'a': '2', '1': 'b', 'D': '5', 'b': '1'}

print('s=',sorted(d.values ()))                     # s= ['1', '5', 'A', 'a', 'b']

6.字典遍历

d={'b':'1','a':'A','3':'a','1':'b','D':'5'}                #创建字典d
for i in d:                                                #开始遍历
    print(i,d[i])                                          # 3 a

                                    1 b                       
                                    b 1                        
                                    a A               
                                    D 5                        
第二种方法:
这种方法因为在输出前要转换所以如果字典内容比较多时会比较慢。
d={'b':'1','a':'A','3':'a','1':'b','D':'5'}              #创建字典d
for i ,v in d.items():                                   #开始遍历
    print(i,v)                                           # 3 a
                                   1 b                        
                                   b 1                        
                                   a A               
                                                           D 5

 

posted @ 2017-08-14 14:25  xsan  阅读(298)  评论(0编辑  收藏  举报