python-字典

 

 

字典dict

http://www.runoob.com/python3/python3-dictionary.html 

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

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

d = {key1 : value1, key2 : value2 }         dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

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

 

访问字典里的值

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'};

print (dict['Name']); #把相应的键放入到方括号中

要是不存在  就发生错误

返回

dict.get('Name', "NA")

参数1  键名

字典中要是存在键  就返回键对应的值;要是不存在,就返回参数2

参数2  默认是None

返回键值

aa= dict.setdefault('name', 79)

参数1  键名

字典中要是存在键  就返回键对应的值;

要是不存在,就返回参数2,并且在字典典的尾部添加这个键值对

 

 

修改某键的值

dict['Age'] = 18;

在尾部添加键值对

方法一:

dict['School'] = "菜鸟教程"

注意:键已经存在 不添加修改值;如果不存在就添加

方法二:

s1=s.setdefault('weight')   参数是增加的键,增加的值是None

s1=s.setdefault('weight',144)    参数1是增加的键,参数2是增加的值

注意:键已经存在 不添加没有任何操作;如果不存在才添加

在尾部添加另一个字典的内容

dict.update(dict2)

dict尾部添加另一个字典dict2的内容

 

删除键值对

del dict['Name']

参数  要删除的键名

删除指定键值对

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}

pop=site.pop('name')

从字典里删除指定键的键值对

返回被删除的,键要是不存在就抛出错误

 

s1=s.pop('agea',-1)

返回被删除的,键要是不存在就返回参数2

 

删除最后的键值对

pop=site.popitem()

返回被删除键值对的元组:('hight', '1.66')  

 

清空字典

dict.clear()

删除字典

del dict

返回字典的长度

x=len(dict)

返回键值对的总数

复制

dict1=dict.copy();

创建新字典

dict =dict.fromkeys(seq)

参数seq 是列表或元组,当中的元素作为新字典的键名

参数2  要是省略 每个键的值为 None

dict =dict.fromkeys(seq,21)   每个键的值为 21

 

字典转换为字符串

str=str(dict)

键是否包含在字典里

bl='name' in dict;      #在字典里    返回true   不在  返回false

返回键名迭代器,可以再转换为列表

dict = {'Name': 'Runoob', 'Age': 7}

aa=dict.keys()

print (aa)

返回值    dict_keys(['Name', 'Age'])

可以再转换为列表

zz=list(aa)

['Name', 'Age']

 

返回(, ) 元组的列表迭代器

dict = {'Name': 'Runoob', 'Age': 7}

aa=dict.items()

print (aa)

返回值 dict_items([('Age', 7), ('Name', 'Runoob')])

可以再转换成列表  zz=list(aa)

返回值  [('Age', 7), ('Name', 'Runoob')]

返回的列表迭代器

dict = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}

aa=dict.values()

  

可以再转换为列表  zz=list(aa)

 

 

dict.keys()  表示所有键

dict.values()   表示所有值

 

遍历字典

方法一  遍历键名

a={'a': '1', 'b': '2', 'c': '3'}

for key in a:

print(key+':'+a[key])

key保存的是键名

 

方法二   遍历键名

a={'b': '1', 'a': '2', 'c': '3'}

for key in a.keys():

       print(key)

key保存的是键名

 

可以对键名集合先进行排序

a={'b': '1', 'a': '2', 'c': '3'}

for key in sorted(a.keys()):

       print(key)

 

方法三   遍历值

a={'a': '1', 'b': '2', 'c': '3'}

for value in a.values():

       print(value)

value保存的是值

 

 

方法四   遍历键值对

a={'a': '1', 'b': '2', 'c': '3'}

for kv in a.items():

       print(kv)

kv保存的是键值对的元组

 

 

方法五   遍历键值对

a={'a': '1', 'b': '2', 'c': '3'}

for key,value in a.items():

       print(key+':'+value)

key保存键名     value保存相应的值

等效

a={'a': '1', 'b': '2', 'c': '3'}

for (key,value) in a.items():

       print(key+':'+value)

 

posted @ 2019-05-14 13:20  天子骄龙  阅读(188)  评论(0编辑  收藏  举报