Python 字典类型

字典 Dictionary

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

字典的每个键值对 用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{},如

Alien={'color':'black','age':'3','weight':'100cm'}

 

字典键的特性

                 是mutable可以修改的
                 value可以是任何数据类型,但key不行
                 key 可以是hash类型,最常用的效率也最高的是数字或字符串
                 key:value 及键值对的形式存储,每个key都是唯一的(若相同,后面的key会覆盖前面的key)
                 根据键查找的效率非常高
                 字典的特性称之为map(映射)

字典定义

dict1 = {}

dict2 = {'name': 'Jack', 'age': 40}
 

len(字典)   字典长度 返回字典元素个数,即键的总数

 

1. 访问键值

Alice={'color':'black','age':'3','weight':'100cm'}

print (Alien[‘weight’])

==  100cm

 

判断字典中是否有key

key in 字典  返回布尔类型

 

1.2增加键-

Alice={'color':'black', 'age':'3', 'weight':'100cm'}

Alice['length'] = '160cm'   *增加键值,注意用[],里面要加引号

Alice['sex']='女'

Print (Alice)

== {'color': 'black', 'age': '3', 'weight': '45kg', 'length': '160cm', 'sex': '女'}

 

 Alice.update({'键':'值', '键':'值'})   用update增加键-值元素

 Alice.update(另一个字典)

Alice = {}
Alice['length']='160cm'
Alice.update({'length':'170', 'age':'20'})
print(Alice)

 

1.3 创建一个空字典,增加键-

Alice={}

Alice['length'] = '160cm'   

Alice['sex']='女'

Print (Alice)

=={'length': '160cm', 'sex': '女'}

 

1.4 修改字典中的值

Alice={'color':'black','age':'3','weight':'100cm'}

Alice['color'] = 'red'   * 对键从新赋值

Print (Alice)

== Alice={'color':’red,'age':'3','weight':'100cm'}

 

1.5 删除一对键-

Del 删除字典

Alice={'color':'black','age':'3','weight':'100cm'}

Del Alice['color']    *永远删除键and值

Print (Alice)

== Alice={'color':'black','age':'3'}

 

清空字典

Alice.clear()

 

 del dict 和 dict 重新赋值,2个dict不是同一个元素,id(dict)的值不一样

 

pop()删除字典键  

 x = {'a':1,'b':2}
 x.pop('a')    同时删除键名和值,同时返回字典值 1

 

1.6 类似对象组成的字典

若较长的字典可以使用换行

Alice={'color':'black', 

          'age':'3',

          'weight':'100cm',             * 保留逗号,为以后添加键值做好准备

         }                       

Print (Alice)

== Alice={'color':’red,'age':'3','weight':'100cm'}

 

1.7 遍历字典

1.7.1 遍历所有的键和值    *for X,Y in 元组.items()  

mitty={'first_name':'Mitty','last_name':'Chan','city':'Shanghai','age':'25'}

for key,values in mitty.items():

 print ('My '+ key +' is '+ values)

 ==

My first_name is Mitty

My last_name is Chan

My city is Shanghai

My age is 25

1.7.2 遍历字典中所有的键   keys()

在不需要使用字典中的值时, 使用keys()是很有用的;

mitty={'first_name':'Mitty','last_name':'Chan','city':'Shanghai','age':'25'}

For mykey in mitty.keys():

 Print (mykey)

==first_name  last_name  city   age

 

1.7.3 遍历字典中所有的值 - values()

mitty={'first_name':'Mitty','last_name':'Chan','city':'Shanghai','age':'25'}

For myvalues in mitty.values():

 Print (myvalues)

== Mitty Shanghai Chan 25

 

1.7.4 遍历字典中所有的值时,去重复项  - set()

mitty={'first_name':'Mitty','last_name':'Chan','city':'Shanghai','age':'25','hair':'25'}

for myvalues in set(mitty.values()):

 print (myvalues) )

== Mitty Shanghai Chan 25       * age 和 hair 的值都为25,但只会输出一个25

 

1.8  字典类型的完美打印

import pprint

pprint.pprint()

上面是正常打印

下面的是完美打印,一种美观打印方式

 

【python】字典里套字典

在一个字典里再套字典。

familyinfo = {
        "family name":"Python",
        "family structure":[
                    {"name":"Taro", "age":32, "sex":"male"}, 
                    {"name":"Hanako", "age":31, "sex":"female"}, 
                    {"name":"Ichiro", "age":5, "sex":"male"}
        ],
        "address":[
                    {"country":"Japan"},
                    {"administrative_area":"Tokyo"},
                    {"locality":"Chuohku"}
        ],
        "phone number":"03-0000-0000"
        }

想要打印“Taro”的话

print(familyinfo["family structure"][0]["name"])

你可能感兴趣的:(Python)