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)

浙公网安备 33010602011771号