python10_内置数据结构字典

1. 字典的创建

在这里插入图片描述

# 1. 字典的创建
# key-value 或者 键值对
d = {'name':'westos', 'age':'21', 'address':'西安'}
print(d, type(d))       # {'name': 'westos', 'age': '21', 'address': '西安'} <class 'dict'>
d = {}
print(d, type(d))       # {} <class 'dict'>

2. 字典的特性

# 2. 字典的特性
# 不支持 + * index slice (因为字典是无序且不重复的)
# 支持 in 和 not in 成员操作符
# 注意:in 和 not in只能判断key值
d = {'name':'westos', 'age':'21', 'address':'西安'}
print('name' in d)      # True, 判断是否所有的key的成员
print('westos' in d)    # False

3. 字典的内置方法

3.1 查看元素

# 3. 字典的内置方法
# 3-1) 查看
d = {'name':'westos', 'age':21, 'address':'西安'}
print(d.keys())     # 查看字典所有的key,dict_keys(['name', 'age', 'address'])
print(d.values())   # 查看字典所有的value,dict_values(['westos', 21, '西安'])
print(d.items())    # 查看字典所有的key-value值(item元素),dict_items([('name', 'westos'), ('age', 21), ('address', '西安')])
print(d['name'])    # 查看key为name对应的value值,westos
# print(d['sex'])     # 如果查看的key不存在,那么会报错,KeyError: 'sex'
print(d.get('sex')) # 如果查看的key不存在,那么会返回 None
print(d.get('sex', 'gril')) # 如果查看的key不存在,那么会返回默认值 gril

d = {'name':'westos', 'age':21, 'address':'西安', 'sex':'boy'}
print(d.get('sex', 'gril')) # boy, 如果查看的key存在,则返回对应的value值;如果不存在,返回默认值

3.2 增加元素

# 3-2) 增加
d = {'name':'westos', 'age':21}
d['address'] = '西安'
print(d)        # {'name': 'westos', 'age': 21, 'address': '西安'}
d['address'] = '成都'     # key存在,则修改value值
print(d)        # {'name': 'westos', 'age': 21, 'address': '成都'}

d = {'name':'westos', 'age':21}
d.setdefault('address', '西安')   # key不存在,就添加
print(d)        # {'name': 'westos', 'age': 21, 'address': '西安'}
d.setdefault('address', '成都')   # key存在,则不做任何操作
print(d)        # {'name': 'westos', 'age': 21, 'address': '西安'}

3.3 删除元素

# 3-3) 删除
# 
d = {'name':'westos', 'age':21}
d.pop('name')
print(d)        # {'age': 21}

d = {'name':'westos', 'age':21}
del d['name']
print(d)        # {'age': 21}

在这里插入图片描述

4. 遍历字典

# 特别重要:
d = {'name':'westos', 'age':21, 'address':'西安'}
# 如何遍历字典的key和value呢?
for item in d.items():
    print(item)
# ('name', 'westos')
# ('age', 21)
# ('address', '西安')

d = {'name':'westos', 'age':21, 'address':'西安'}
for key,value in d.items():
    print(f'key={key}, value={value}')
# key=name, value=westos
# key=age, value=21
# key=address, value=西安

5. 扩展:默认字典

在这里插入图片描述在这里插入图片描述

# 默认字典
from collections import defaultdict
# 默认字典:设置默认value

# int 整型数据
d = defaultdict(int)
print(d)            # defaultdict(<class 'int'>, {})
print(d['apple'])   # 0 默认字典给所有的key设置value
print(d)            # defaultdict(<class 'int'>, {'apple': 0})
d['banana'] += 1
d['orange'] += 1
d['pear'] = 4   
print(d)            # defaultdict(<class 'int'>, {'apple': 0, 'banana': 1, 'orange': 1, 'pear': 4})
# list 列表型数据
d = defaultdict(list)
d['allow_users'].append('westos')
d['deny_users'].extend(['user1','user2'])
print(d)            # defaultdict(<class 'list'>, {'allow_users': ['westos'], 'deny_users': ['user1', 'user2']})
# set 集合型数据
d = defaultdict(set)
d['love_movies'].add('肖申克的救赎')      # 不需要 {}
d['deny_movies'].update('混沌行走')
print(d)            # defaultdict(<class 'set'>, {'love_movies': {'肖申克的救赎'}, 'deny_movies': {'走', '混', '行', '沌'}})
d = defaultdict(set)
d['deny_movies'].update({'混沌行走'})    # 需要{}
print(d)            # defaultdict(<class 'set'>, {'deny_movies': {'混沌行走'}})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值