- d1 = {'andy': 1001, 'fox': 1002, 'lie': 1003}
- print(d1)
- # {'andy': 1001, 'fox': 1002, 'lie': 1003}
- d2 = {} # 空字典
- d3 = dict() # 使用dict()方法创建空字典
- name = {'惊春', '芒夏', '露秋', '雪冬'}
- sign = {'双鱼座', '金牛座', '狮子座', '射手座'}
- # 使用zip()函数将列表或元组对应的元素组合成字典
- d4 = dict(zip(name, sign))
- print(d4)
- # {'露秋': '狮子座', '雪冬': '金牛座', '芒夏': '双鱼座', '惊春': '射手座'}
- # 使用 键=值 的方式创建
- d5 = dict(a=12, b=34, c=56)
- print(d5)
- # {'a': 12, 'b': 34, 'c': 56}
-
<1> 格式:dictname[键]=值
<2> 例:
- d1 = {'西瓜': 5, '橙子': 8, '橘子': 10}
- d1['西瓜'] = 1.5
- d1['橘子'] = 12
- print(d1) # {'西瓜': 1.5, '橙子': 8, '橘子': 12}
<1> del 字典名[键]:删除字典中特定元素
<2> dictname.clear():清空字典全部元素
<3> del 字典名:删除字典整体
- d1 = {'西瓜': 5, '橙子': 8, '橘子': 10}
- del d1['西瓜']
- print(d1) # {'橙子': 8, '橘子': 10}
- d1.clear()
- print(d1) # {}
- del d1
- d1 = {'西瓜': 5, '橙子': 8, '橘子': 10}
- print(d1['橘子']) # 10
<1> 作用:保护源字典的内容
<2> 格式:new_dictname=dictname.copy()
PS:默认为深拷贝,新字典地址独立
- d1 = {'西瓜': 5, '橙子': 8, '橘子': 10}
- d2 = d1.copy()
- print(d1, '\n', d2)
- # {'西瓜': 5, '橙子': 8, '橘子': 10}
- # {'西瓜': 5, '橙子': 8, '橘子': 10}
- print(id(d1), id(d2)) # 1482992340352 1482992340544
<1> 格式:dictname.get(key,default)
- d1 = {'name': 'andy', 'age': 17, 'class': 'first'}
- print(d1.get('age')) # 17
- print(d1.get('sex')) # None
- print(d1.get('sex', '无此选项')) # 指定键不存在,指定默认值时,返回默认值
- # 若访问的键不存在,执行default
<1> 格式:遍历值,item()方法
for i in dictname.items():
处理i
<2> 格式2:键:值遍历
for key,value in dictname.items():
处理key和value
- name = {'惊春', '芒夏', '露秋', '雪冬'}
- sign = {'双鱼座', '金牛座', '狮子座', '射手座'}
- d1 = dict(zip(name, sign))
- for i in d1.items():
- print(i)
- for i, j in d1.items():
- print(i, '的星座是', j)
- # ('露秋', '狮子座') ....
- # 露秋 的星座是 狮子座 ....
<3> 格式3:遍历字典的键,keys()
for key dictname.keys():
处理
- p = {'张三': 67, '张三疯': 78, '罗律师': 89}
- for name in p.keys():
- print('姓名:', name) # 姓名: 张三......
<4> 示例:
PS:不允许同一个键出现两次,创建时如果同一个键被赋值两次,前一个没赋上,后一个会被记住
- d1 = {'num': 1001, 'sum': 1002, 'num': 1003}
- print(d1) # {'num': 1003, 'sum': 1002}
PS:键必须不可变,所以使用数字、字符串、元组来充当,列表不行
- d1 = {'sum': 1002, ['num']: 1003}
- print(d1) # 报错。键不能为列表
列表储存在字典中,一般作为字典的某个键的值出现,需要使用循环嵌套循环完成处理。外层循环用于取得字典的键,内层循环用于取得值或将列表拆解
- sp = {'andy': ['篮球', '足球', '橄榄球'], 'sunny': ['体操', '游泳', ], 'xiaoming': ['羽毛球', '乒乓球']}
- for name, na_sp in sp.items():
- print('%s喜欢的运动是:' % name, end=' ')
- for sport in na_sp:
- print(' ', sport, end=' ')
- print() # andy喜欢的运动是: 篮球 足球 橄榄球 ...
字典存储在字典中,一般用于表示字典中键的值
- wechat = {'001': {'lastname': '张三', 'firstname': '张三疯', 'city': '西安'},
- '002': {'lastname': '李四', 'firstname': '李四疯', 'city': '成都'}}
- for num, name in wechat.items():
- print('账号:', num, end=' ')
- print('姓名:', name['firstname'], end=' ')
- print('住址:', name['city'])
- # 账号: 001 姓名: 张三疯 住址: 西安
- # 账号: 002 姓名: 李四疯 住址: 成都