字典 (dict)
字典定义:
- {key1:value1,key2:value2}
- key指的是字典中的键;value指的是字典中的值
- 键与值必须成对出现,键-值对之间用逗号隔开
- 字典中键不能重复出现;值可以重复
- 字典是可变的
- 字典是无序的?
- 字典查询速度快,因为hash结构
创建字典
方式1。直接大括号创建字典
>>> student = {"name":"jack","age":"18"} >>> student {'name': 'jack', 'age': '18'}
>>> student = {1:"jack",2:"18"} >>> student {1: 'jack', 2: '18'}
>>> student = {"name":"jack",2:"18"} >>> student {'name': 'jack', 2: '18'}
方式2。使用dict()创建字典
>>> student = dict(name = "jack",age = "18") >>> student {'name': 'jack', 'age': '18'}
- 注:dict()的用法
>>> student = dict(jack=1,jane=2) >>> student = dict(1=jack,2=jane) SyntaxError: keyword can't be an expression
方式3。批量创建
>>> {}.fromkeys([1,2,3,4,5,6,7,8],100) {1: 100, 2: 100, 3: 100, 4: 100, 5: 100, 6: 100, 7: 100, 8: 100}
字典的增加
方式1
>>> student {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男']} >>> student["小白"] = [8,'男'] >>> student {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男'], '小白': [8, '男']}
方式2。setdefault()
>>> student {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男'], '小白': [8, '男']} >>> student.setdefault("小花",[7,"女"]) [7, '女'] >>> student.setdefault("小明",[7,"女"]) [8, '男']
- 注:setdefault()
- 新增的元素原字典内不存在时,返回新增元素
- 新增元素原字典内存在时,不改变原字典内的元素,返回旧元素
- 注:setdefault()
字典的删除
pop()。删除指定元素,()内必须传入一个 键
>>> student {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男'], '小白': [8, '男'], '小花': [7, '女']} >>> student.pop("小白") [8, '男'] >>> student {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男'], '小花': [7, '女']}
- 注:字典中pop()必须指定key,而不能默认删除最后一个元素。与列表的pop()不同。
popitem()。 ()内不能传入参数
>>> student = {'小明': [8, '男'], '小红': [7, '女'], '小亮': [9, '男'], '小白': [8, '男'], '小花': [7, '女']} >>> student.popitem() ('小花', [7, '女']) >>> student.popitem() ('小白', [8, '男'])
- 注:字典是否是无序的?popitem是随机删除元素,还是删除最后一个元素
del 。删除指定key,不返回删除的元素,类似pop()
del student["小明"]
clear。清空字典
name.clear()
字典的修改
dic[key] = 'new_value'
如果key在字典中存在,则'new_value'将替代原来的value;
如果key在字典中不存在,则新加 key:new_value 键值对 , 可作为字典增加元素的操作
dict1.update(dict2)。字典2的元素添加到字典1中,相同的元素被dict2中的元素更新。
>>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [7, '男']} >>> student2 {'小花': [8, '女'], '小兰': [8, '女'], '小明': [6, '男']} >>> student.update(student2) >>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [6, '男'], '小花': [8, '女'], '小兰': [8, '女']}
第二种方式同字典的增加 方式1
字典的查询
dic['key']。#返回key对用的value,不存在则报错
>>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [6, '男']} >>> student["小红"] [7, '女']
dic.get(key,default=None)
返回key对应的value;key不存在是默认返回None;可修改返回值:如,default=-1,则返回-1
>>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [6, '男']} >>> student.get("小红") [7, '女'] >>> student.get("小白") >>> student.get("小白",-1) -1
"key" in dic
dic.key() #返回包含所有key的列表
dic.valur() #返回包含所有value列表
dic.items() #返回一个包含所有(键-值)元祖的列表
>>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [6, '男']} >>> student.items() dict_items([('小红', [7, '女']), ('小亮', [9, '男']), ('小明', [6, '男'])])
字典的循环
官方推荐
>>> student {'小红': [7, '女'], '小亮': [9, '男'], '小明': [6, '男']} >>> for i in student: print(i,student[i]) 小红 [7, '女'] 小亮 [9, '男'] 小明 [6, '男']
方式2
for k in student.keys()
- 方式3
for k,v in student.items()