Python3基础-字典操作

 Q:什么是字典

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

-----字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 

Tips:定义一个string

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

字典的特性:

  • dict是无序的
  • key必须是唯一的

 访问字典里的值 

>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>dict['name']#字典没有的键,访问会出错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 'name'
>>>dict['Name']
'Zara'

修改字典的值 

  • 更新
  • 新增
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>dict['Name']='Ronny'#修改
>>>dict['city']='Hunan'#新增加
>>>dict
{'Name': 'Ronny', 'Age': 7, 'Class': 'First', 'city': 'Hunan'}

删除字典的值 

  • del dict[k]
  • dict.pop(k)
  • dict.popitem()随机删除
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>del dict['Name']
>>>dict
{'Age': 7, 'Class': 'First'}
>>>dict.pop()#pop(k)k必须是键
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: pop expected at least 1 arguments, got 0
>>>dict.pop('Age')
7
>>>dict
{'Class': 'First'}

 浅复制  

  • 返回一个字典的浅复制
  • copy()特性和列表一致
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First','Age':8};
>>>dict1=dict.copy()
>>>dict1
{'Name': 'Zara', 'Age': 8, 'Class': 'First'}

  

>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First','other':{'Age':8,'City':'hunan'}}
>>>dict1=dict.copy()
>>>dict1['Name']='Tonny'
>>>dict1
{'Name': 'Tonny', 'Age': 7, 'Class': 'First', 'other': {'Age': 8, 'City': 'hunan'}}
>>>dict
{'Name': 'Zara', 'Age': 7, 'Class': 'First', 'other': {'Age': 8, 'City': 'hunan'}}
>>>dict1['other']['Age']='100'
>>>dict1
{'Name': 'Tonny', 'Age': 7, 'Class': 'First', 'other': {'Age': '100', 'City': 'hunan'}}
>>>dict
{'Name': 'Zara', 'Age': 7, 'Class': 'First', 'other': {'Age': '100', 'City': 'hunan'}}

 fromkeys()方法 

  • Python 字典(Dictionary) fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
>>>seq=('Name','Age','Class')
>>>dict=dict.fromkeys(seq)
>>>dict
{'Name': None, 'Age': None, 'Class': None}
>>>dict=dict.fromkeys(seq,'Hello')
>>>dict
{'Name': 'Hello', 'Age': 'Hello', 'Class': 'Hello'}

 查找(判断)  

  • 一是通过in判断key是否存在=== 返回True False
  • 二是通过dict提供的get方法===返回value
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>'Name' in dict  #返回真假
True
>>>dict.get('Name')#返回值,没有的时候返回None
'Zara'

 遍历 

  • dict.keys()==遍历键
  • dict.values()==遍历值
  • dict.items()==遍历键值
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>dict.keys()
dict_keys(['Name', 'Age', 'Class'])
>>>dict.values()
dict_values(['Zara', 7, 'First'])
>>>dict.items()
dict_items([('Name', 'Zara'), ('Age', 7), ('Class', 'First')])

 追加合并

  • update()方法
>>>dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
>>>dict1={'City':'hunan','Count':9,'Age':90}#有相同的键值时,会覆盖掉
>>>dict.update(dict1)
>>>dict
{'Name': 'Zara', 'Age': 90, 'Class': 'First', 'City': 'hunan', 'Count': 9}

 循环 

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)

  

posted @ 2017-08-01 23:45  Ronny_bin  阅读(112)  评论(0)    收藏  举报